From c907e5870f1225ba69b31e266d34af0c5f602897 Mon Sep 17 00:00:00 2001 From: Christian Heitman Date: Fri, 20 Dec 2024 10:54:29 -0300 Subject: [PATCH] Update Unicorn --- .github/workflows/codecov.yml | 2 +- .github/workflows/linux.yml | 2 +- .github/workflows/osx.yml | 8 +- .github/workflows/vcpkg.yml | 2 +- Dockerfile | 2 +- src/testers/x86/unicorn_test_x86.py | 1574 ++++++++++++++------------- 6 files changed, 798 insertions(+), 792 deletions(-) diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml index a0ec994d6..e9a8f2dd9 100644 --- a/.github/workflows/codecov.yml +++ b/.github/workflows/codecov.yml @@ -67,7 +67,7 @@ jobs: - name: Install Unicorn run: | - python -m pip install unicorn==2.0.0 + python -m pip install unicorn - name: Install LIEF run: | diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 11356b331..fdbf506e7 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -70,7 +70,7 @@ jobs: - name: Install Unicorn run: | - python -m pip install unicorn==2.0.1 + python -m pip install unicorn - name: Install LIEF run: | diff --git a/.github/workflows/osx.yml b/.github/workflows/osx.yml index c6dd4ea49..f9f0dff96 100644 --- a/.github/workflows/osx.yml +++ b/.github/workflows/osx.yml @@ -27,8 +27,8 @@ jobs: - name: Install Z3 run: | - wget https://github.com/Z3Prover/z3/releases/download/z3-4.13.3/z3-4.13.3-arm64-osx-13.7.zip - unzip z3-4.13.3-arm64-osx-13.7.zip + wget -q https://github.com/Z3Prover/z3/releases/download/z3-4.13.3/z3-4.13.3-arm64-osx-13.7.zip + unzip -q z3-4.13.3-arm64-osx-13.7.zip sudo python -m pip install z3-solver==4.13.3.0 - name: Install Deps @@ -51,7 +51,7 @@ jobs: - name: Install Capstone run: | - wget https://github.com/aquynh/capstone/archive/5.0.3.tar.gz + wget -q https://github.com/aquynh/capstone/archive/5.0.3.tar.gz tar -xf ./5.0.3.tar.gz cd ./capstone-5.0.3 bash ./make.sh @@ -88,5 +88,5 @@ jobs: # NOTE Tests will fail because currently they only pass with Unicorn # v2.0.0. However, Unicorn v2.0.0 does not build on the macos-14 runner. - name: Unittests - run: + run: | DYLD_LIBRARY_PATH=/usr/local/lib/ ctest --test-dir build --output-on-failure diff --git a/.github/workflows/vcpkg.yml b/.github/workflows/vcpkg.yml index d0b4fd654..1c3b922b3 100644 --- a/.github/workflows/vcpkg.yml +++ b/.github/workflows/vcpkg.yml @@ -80,7 +80,7 @@ jobs: - name: Test run: | ${{ matrix.python-executable }} --version - ${{ matrix.python-executable }} -m pip install lief==0.15.1 unicorn==2.0.1.post1 z3-solver + ${{ matrix.python-executable }} -m pip install lief==0.15.1 unicorn z3-solver ctest --preset test-${{ matrix.cmake-preset }} -C Release --output-on-failure - name: Install diff --git a/Dockerfile b/Dockerfile index a3e823bca..eef57e1cf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -39,7 +39,7 @@ RUN python3 -m pip install --upgrade pip && \ lief \ meson \ setuptools \ - unicorn==2.0.0 \ + unicorn \ z3-solver # libcapstone >= 5.0.x diff --git a/src/testers/x86/unicorn_test_x86.py b/src/testers/x86/unicorn_test_x86.py index fe594f8f8..282cdc97c 100644 --- a/src/testers/x86/unicorn_test_x86.py +++ b/src/testers/x86/unicorn_test_x86.py @@ -16,742 +16,748 @@ HEAP = 0x300000 SIZE = 5 * 1024 * 1024 +# NOTE Unicorn v2.1.1 does not support some of the tested instructions: pextr, +# vpextr, pinsr. There are also some issues with the following instructions: +# lzcnt, and tzcnt. You can use Unicorn v2.0.0 in order to test them. +# Currently we moved to v2.1.1 since previous versions do not work on newer +# OSX versions (>= v14). + CODE = [ - (None, [], b"\x48\xb8\x44\x33\x22\x11\x00\x00\x00\x00", "mov rax, 0x11223344"), - (None, [], b"\x48\xff\xc0", "inc rax"), - (None, [], b"\x48\xc7\xc3\x00\x00\x20\x00", "mov rbx, 0x200000"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x00", "pextrb eax, xmm1, 0"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x01", "pextrb eax, xmm1, 1"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x02", "pextrb eax, xmm1, 2"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x03", "pextrb eax, xmm1, 3"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x04", "pextrb eax, xmm1, 4"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x05", "pextrb eax, xmm1, 5"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x06", "pextrb eax, xmm1, 6"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x07", "pextrb eax, xmm1, 7"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x08", "pextrb eax, xmm1, 8"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x09", "pextrb eax, xmm1, 9"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x0a", "pextrb eax, xmm1, 10"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x0b", "pextrb eax, xmm1, 11"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x0c", "pextrb eax, xmm1, 12"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x0d", "pextrb eax, xmm1, 13"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x0e", "pextrb eax, xmm1, 14"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x0f", "pextrb eax, xmm1, 15"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x10", "pextrb eax, xmm1, 16"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x11", "pextrb eax, xmm1, 17"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x12", "pextrb eax, xmm1, 18"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x13", "pextrb eax, xmm1, 19"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x14", "pextrb eax, xmm1, 20"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x15", "pextrb eax, xmm1, 21"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x16", "pextrb eax, xmm1, 22"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x17", "pextrb eax, xmm1, 23"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x18", "pextrb eax, xmm1, 24"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x19", "pextrb eax, xmm1, 25"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x1a", "pextrb eax, xmm1, 26"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x1b", "pextrb eax, xmm1, 27"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x1c", "pextrb eax, xmm1, 28"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x1d", "pextrb eax, xmm1, 29"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x1e", "pextrb eax, xmm1, 30"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x1f", "pextrb eax, xmm1, 31"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x20", "pextrb eax, xmm1, 32"), - (None, [], b"\x66\x0f\x3a\x14\xc8\x21", "pextrb eax, xmm1, 33"), - - (None, [], b"\x66\x0f\x3a\x16\xc8\x00", "pextrd eax, xmm1, 0"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x01", "pextrd eax, xmm1, 1"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x02", "pextrd eax, xmm1, 2"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x03", "pextrd eax, xmm1, 3"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x04", "pextrd eax, xmm1, 4"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x05", "pextrd eax, xmm1, 5"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x06", "pextrd eax, xmm1, 6"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x07", "pextrd eax, xmm1, 7"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x08", "pextrd eax, xmm1, 8"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x09", "pextrd eax, xmm1, 9"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x0a", "pextrd eax, xmm1, 10"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x0b", "pextrd eax, xmm1, 11"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x0c", "pextrd eax, xmm1, 12"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x0d", "pextrd eax, xmm1, 13"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x0e", "pextrd eax, xmm1, 14"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x0f", "pextrd eax, xmm1, 15"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x10", "pextrd eax, xmm1, 16"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x11", "pextrd eax, xmm1, 17"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x12", "pextrd eax, xmm1, 18"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x13", "pextrd eax, xmm1, 19"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x14", "pextrd eax, xmm1, 20"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x15", "pextrd eax, xmm1, 21"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x16", "pextrd eax, xmm1, 22"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x17", "pextrd eax, xmm1, 23"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x18", "pextrd eax, xmm1, 24"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x19", "pextrd eax, xmm1, 25"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x1a", "pextrd eax, xmm1, 26"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x1b", "pextrd eax, xmm1, 27"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x1c", "pextrd eax, xmm1, 28"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x1d", "pextrd eax, xmm1, 29"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x1e", "pextrd eax, xmm1, 30"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x1f", "pextrd eax, xmm1, 31"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x20", "pextrd eax, xmm1, 32"), - (None, [], b"\x66\x0f\x3a\x16\xc8\x21", "pextrd eax, xmm1, 33"), - - (None, [], b"\x66\x0f\x3a\x16\x0b\x00", "pextrd [rbx], xmm1, 0"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x01", "pextrd [rbx], xmm1, 1"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x02", "pextrd [rbx], xmm1, 2"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x03", "pextrd [rbx], xmm1, 3"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x04", "pextrd [rbx], xmm1, 4"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x05", "pextrd [rbx], xmm1, 5"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x06", "pextrd [rbx], xmm1, 6"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x07", "pextrd [rbx], xmm1, 7"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x08", "pextrd [rbx], xmm1, 8"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x09", "pextrd [rbx], xmm1, 9"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x0a", "pextrd [rbx], xmm1, 10"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x0b", "pextrd [rbx], xmm1, 11"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x0c", "pextrd [rbx], xmm1, 12"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x0d", "pextrd [rbx], xmm1, 13"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x0e", "pextrd [rbx], xmm1, 14"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x0f", "pextrd [rbx], xmm1, 15"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x10", "pextrd [rbx], xmm1, 16"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x11", "pextrd [rbx], xmm1, 17"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x12", "pextrd [rbx], xmm1, 18"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x13", "pextrd [rbx], xmm1, 19"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x14", "pextrd [rbx], xmm1, 20"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x15", "pextrd [rbx], xmm1, 21"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x16", "pextrd [rbx], xmm1, 22"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x17", "pextrd [rbx], xmm1, 23"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x18", "pextrd [rbx], xmm1, 24"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x19", "pextrd [rbx], xmm1, 25"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x1a", "pextrd [rbx], xmm1, 26"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x1b", "pextrd [rbx], xmm1, 27"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x1c", "pextrd [rbx], xmm1, 28"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x1d", "pextrd [rbx], xmm1, 29"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x1e", "pextrd [rbx], xmm1, 30"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x1f", "pextrd [rbx], xmm1, 31"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x20", "pextrd [rbx], xmm1, 32"), - (None, [], b"\x66\x0f\x3a\x16\x0b\x21", "pextrd [rbx], xmm1, 33"), - - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x00", "pextrq rax, xmm1, 0"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x01", "pextrq rax, xmm1, 1"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x02", "pextrq rax, xmm1, 2"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x03", "pextrq rax, xmm1, 3"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x04", "pextrq rax, xmm1, 4"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x05", "pextrq rax, xmm1, 5"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x06", "pextrq rax, xmm1, 6"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x07", "pextrq rax, xmm1, 7"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x08", "pextrq rax, xmm1, 8"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x09", "pextrq rax, xmm1, 9"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x0a", "pextrq rax, xmm1, 10"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x0b", "pextrq rax, xmm1, 11"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x0c", "pextrq rax, xmm1, 12"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x0d", "pextrq rax, xmm1, 13"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x0e", "pextrq rax, xmm1, 14"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x0f", "pextrq rax, xmm1, 15"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x10", "pextrq rax, xmm1, 16"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x11", "pextrq rax, xmm1, 17"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x12", "pextrq rax, xmm1, 18"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x13", "pextrq rax, xmm1, 19"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x14", "pextrq rax, xmm1, 20"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x15", "pextrq rax, xmm1, 21"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x16", "pextrq rax, xmm1, 22"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x17", "pextrq rax, xmm1, 23"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x18", "pextrq rax, xmm1, 24"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x19", "pextrq rax, xmm1, 25"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x1a", "pextrq rax, xmm1, 26"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x1b", "pextrq rax, xmm1, 27"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x1c", "pextrq rax, xmm1, 28"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x1d", "pextrq rax, xmm1, 29"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x1e", "pextrq rax, xmm1, 30"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x1f", "pextrq rax, xmm1, 31"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x20", "pextrq rax, xmm1, 32"), - (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x21", "pextrq rax, xmm1, 33"), - - (None, [], b"\x66\x0f\xc5\xc1\x00", "pextrw eax, xmm1, 0"), - (None, [], b"\x66\x0f\xc5\xc1\x01", "pextrw eax, xmm1, 1"), - (None, [], b"\x66\x0f\xc5\xc1\x02", "pextrw eax, xmm1, 2"), - (None, [], b"\x66\x0f\xc5\xc1\x03", "pextrw eax, xmm1, 3"), - (None, [], b"\x66\x0f\xc5\xc1\x04", "pextrw eax, xmm1, 4"), - (None, [], b"\x66\x0f\xc5\xc1\x05", "pextrw eax, xmm1, 5"), - (None, [], b"\x66\x0f\xc5\xc1\x06", "pextrw eax, xmm1, 6"), - (None, [], b"\x66\x0f\xc5\xc1\x07", "pextrw eax, xmm1, 7"), - (None, [], b"\x66\x0f\xc5\xc1\x08", "pextrw eax, xmm1, 8"), - (None, [], b"\x66\x0f\xc5\xc1\x09", "pextrw eax, xmm1, 9"), - (None, [], b"\x66\x0f\xc5\xc1\x0a", "pextrw eax, xmm1, 10"), - (None, [], b"\x66\x0f\xc5\xc1\x0b", "pextrw eax, xmm1, 11"), - (None, [], b"\x66\x0f\xc5\xc1\x0c", "pextrw eax, xmm1, 12"), - (None, [], b"\x66\x0f\xc5\xc1\x0d", "pextrw eax, xmm1, 13"), - (None, [], b"\x66\x0f\xc5\xc1\x0e", "pextrw eax, xmm1, 14"), - (None, [], b"\x66\x0f\xc5\xc1\x0f", "pextrw eax, xmm1, 15"), - (None, [], b"\x66\x0f\xc5\xc1\x10", "pextrw eax, xmm1, 16"), - (None, [], b"\x66\x0f\xc5\xc1\x11", "pextrw eax, xmm1, 17"), - (None, [], b"\x66\x0f\xc5\xc1\x12", "pextrw eax, xmm1, 18"), - (None, [], b"\x66\x0f\xc5\xc1\x13", "pextrw eax, xmm1, 19"), - (None, [], b"\x66\x0f\xc5\xc1\x14", "pextrw eax, xmm1, 20"), - (None, [], b"\x66\x0f\xc5\xc1\x15", "pextrw eax, xmm1, 21"), - (None, [], b"\x66\x0f\xc5\xc1\x16", "pextrw eax, xmm1, 22"), - (None, [], b"\x66\x0f\xc5\xc1\x17", "pextrw eax, xmm1, 23"), - (None, [], b"\x66\x0f\xc5\xc1\x18", "pextrw eax, xmm1, 24"), - (None, [], b"\x66\x0f\xc5\xc1\x19", "pextrw eax, xmm1, 25"), - (None, [], b"\x66\x0f\xc5\xc1\x1a", "pextrw eax, xmm1, 26"), - (None, [], b"\x66\x0f\xc5\xc1\x1b", "pextrw eax, xmm1, 27"), - (None, [], b"\x66\x0f\xc5\xc1\x1c", "pextrw eax, xmm1, 28"), - (None, [], b"\x66\x0f\xc5\xc1\x1d", "pextrw eax, xmm1, 29"), - (None, [], b"\x66\x0f\xc5\xc1\x1e", "pextrw eax, xmm1, 30"), - (None, [], b"\x66\x0f\xc5\xc1\x1f", "pextrw eax, xmm1, 31"), - (None, [], b"\x66\x0f\xc5\xc1\x20", "pextrw eax, xmm1, 32"), - (None, [], b"\x66\x0f\xc5\xc1\x21", "pextrw eax, xmm1, 33"), - - (None, [], b"\x0f\xc5\xc1\x00", "pextrw eax, mm1, 0"), - (None, [], b"\x0f\xc5\xc1\x01", "pextrw eax, mm1, 1"), - (None, [], b"\x0f\xc5\xc1\x02", "pextrw eax, mm1, 2"), - (None, [], b"\x0f\xc5\xc1\x03", "pextrw eax, mm1, 3"), - (None, [], b"\x0f\xc5\xc1\x04", "pextrw eax, mm1, 4"), - (None, [], b"\x0f\xc5\xc1\x05", "pextrw eax, mm1, 5"), - (None, [], b"\x0f\xc5\xc1\x06", "pextrw eax, mm1, 6"), - (None, [], b"\x0f\xc5\xc1\x07", "pextrw eax, mm1, 7"), - (None, [], b"\x0f\xc5\xc1\x08", "pextrw eax, mm1, 8"), - (None, [], b"\x0f\xc5\xc1\x09", "pextrw eax, mm1, 9"), - (None, [], b"\x0f\xc5\xc1\x0a", "pextrw eax, mm1, 10"), - (None, [], b"\x0f\xc5\xc1\x0b", "pextrw eax, mm1, 11"), - (None, [], b"\x0f\xc5\xc1\x0c", "pextrw eax, mm1, 12"), - (None, [], b"\x0f\xc5\xc1\x0d", "pextrw eax, mm1, 13"), - (None, [], b"\x0f\xc5\xc1\x0e", "pextrw eax, mm1, 14"), - (None, [], b"\x0f\xc5\xc1\x0f", "pextrw eax, mm1, 15"), - (None, [], b"\x0f\xc5\xc1\x10", "pextrw eax, mm1, 16"), - (None, [], b"\x0f\xc5\xc1\x11", "pextrw eax, mm1, 17"), - (None, [], b"\x0f\xc5\xc1\x12", "pextrw eax, mm1, 18"), - (None, [], b"\x0f\xc5\xc1\x13", "pextrw eax, mm1, 19"), - (None, [], b"\x0f\xc5\xc1\x14", "pextrw eax, mm1, 20"), - (None, [], b"\x0f\xc5\xc1\x15", "pextrw eax, mm1, 21"), - (None, [], b"\x0f\xc5\xc1\x16", "pextrw eax, mm1, 22"), - (None, [], b"\x0f\xc5\xc1\x17", "pextrw eax, mm1, 23"), - (None, [], b"\x0f\xc5\xc1\x18", "pextrw eax, mm1, 24"), - (None, [], b"\x0f\xc5\xc1\x19", "pextrw eax, mm1, 25"), - (None, [], b"\x0f\xc5\xc1\x1a", "pextrw eax, mm1, 26"), - (None, [], b"\x0f\xc5\xc1\x1b", "pextrw eax, mm1, 27"), - (None, [], b"\x0f\xc5\xc1\x1c", "pextrw eax, mm1, 28"), - (None, [], b"\x0f\xc5\xc1\x1d", "pextrw eax, mm1, 29"), - (None, [], b"\x0f\xc5\xc1\x1e", "pextrw eax, mm1, 30"), - (None, [], b"\x0f\xc5\xc1\x1f", "pextrw eax, mm1, 31"), - (None, [], b"\x0f\xc5\xc1\x20", "pextrw eax, mm1, 32"), - (None, [], b"\x0f\xc5\xc1\x21", "pextrw eax, mm1, 33"), - - (None, [], b"\xc4\xe3\x79\x14\xc8\x00", "vpextrb eax, xmm1, 0"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x01", "vpextrb eax, xmm1, 1"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x02", "vpextrb eax, xmm1, 2"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x03", "vpextrb eax, xmm1, 3"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x04", "vpextrb eax, xmm1, 4"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x05", "vpextrb eax, xmm1, 5"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x06", "vpextrb eax, xmm1, 6"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x07", "vpextrb eax, xmm1, 7"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x08", "vpextrb eax, xmm1, 8"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x09", "vpextrb eax, xmm1, 9"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x0a", "vpextrb eax, xmm1, 10"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x0b", "vpextrb eax, xmm1, 11"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x0c", "vpextrb eax, xmm1, 12"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x0d", "vpextrb eax, xmm1, 13"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x0e", "vpextrb eax, xmm1, 14"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x0f", "vpextrb eax, xmm1, 15"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x10", "vpextrb eax, xmm1, 16"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x11", "vpextrb eax, xmm1, 17"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x12", "vpextrb eax, xmm1, 18"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x13", "vpextrb eax, xmm1, 19"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x14", "vpextrb eax, xmm1, 20"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x15", "vpextrb eax, xmm1, 21"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x16", "vpextrb eax, xmm1, 22"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x17", "vpextrb eax, xmm1, 23"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x18", "vpextrb eax, xmm1, 24"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x19", "vpextrb eax, xmm1, 25"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x1a", "vpextrb eax, xmm1, 26"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x1b", "vpextrb eax, xmm1, 27"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x1c", "vpextrb eax, xmm1, 28"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x1d", "vpextrb eax, xmm1, 29"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x1e", "vpextrb eax, xmm1, 30"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x1f", "vpextrb eax, xmm1, 31"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x20", "vpextrb eax, xmm1, 32"), - (None, [], b"\xc4\xe3\x79\x14\xc8\x21", "vpextrb eax, xmm1, 33"), - - (None, [], b"\xc4\xe3\x79\x16\xc8\x00", "vpextrd eax, xmm1, 0"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x01", "vpextrd eax, xmm1, 1"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x02", "vpextrd eax, xmm1, 2"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x03", "vpextrd eax, xmm1, 3"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x04", "vpextrd eax, xmm1, 4"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x05", "vpextrd eax, xmm1, 5"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x06", "vpextrd eax, xmm1, 6"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x07", "vpextrd eax, xmm1, 7"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x08", "vpextrd eax, xmm1, 8"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x09", "vpextrd eax, xmm1, 9"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x0a", "vpextrd eax, xmm1, 10"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x0b", "vpextrd eax, xmm1, 11"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x0c", "vpextrd eax, xmm1, 12"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x0d", "vpextrd eax, xmm1, 13"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x0e", "vpextrd eax, xmm1, 14"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x0f", "vpextrd eax, xmm1, 15"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x10", "vpextrd eax, xmm1, 16"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x11", "vpextrd eax, xmm1, 17"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x12", "vpextrd eax, xmm1, 18"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x13", "vpextrd eax, xmm1, 19"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x14", "vpextrd eax, xmm1, 20"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x15", "vpextrd eax, xmm1, 21"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x16", "vpextrd eax, xmm1, 22"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x17", "vpextrd eax, xmm1, 23"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x18", "vpextrd eax, xmm1, 24"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x19", "vpextrd eax, xmm1, 25"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x1a", "vpextrd eax, xmm1, 26"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x1b", "vpextrd eax, xmm1, 27"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x1c", "vpextrd eax, xmm1, 28"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x1d", "vpextrd eax, xmm1, 29"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x1e", "vpextrd eax, xmm1, 30"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x1f", "vpextrd eax, xmm1, 31"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x20", "vpextrd eax, xmm1, 32"), - (None, [], b"\xc4\xe3\x79\x16\xc8\x21", "vpextrd eax, xmm1, 33"), - - (None, [], b"\xc4\xe3\xf9\x16\xc8\x00", "vpextrq rax, xmm1, 0"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x01", "vpextrq rax, xmm1, 1"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x02", "vpextrq rax, xmm1, 2"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x03", "vpextrq rax, xmm1, 3"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x04", "vpextrq rax, xmm1, 4"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x05", "vpextrq rax, xmm1, 5"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x06", "vpextrq rax, xmm1, 6"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x07", "vpextrq rax, xmm1, 7"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x08", "vpextrq rax, xmm1, 8"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x09", "vpextrq rax, xmm1, 9"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x0a", "vpextrq rax, xmm1, 10"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x0b", "vpextrq rax, xmm1, 11"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x0c", "vpextrq rax, xmm1, 12"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x0d", "vpextrq rax, xmm1, 13"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x0e", "vpextrq rax, xmm1, 14"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x0f", "vpextrq rax, xmm1, 15"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x10", "vpextrq rax, xmm1, 16"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x11", "vpextrq rax, xmm1, 17"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x12", "vpextrq rax, xmm1, 18"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x13", "vpextrq rax, xmm1, 19"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x14", "vpextrq rax, xmm1, 20"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x15", "vpextrq rax, xmm1, 21"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x16", "vpextrq rax, xmm1, 22"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x17", "vpextrq rax, xmm1, 23"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x18", "vpextrq rax, xmm1, 24"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x19", "vpextrq rax, xmm1, 25"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x1a", "vpextrq rax, xmm1, 26"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x1b", "vpextrq rax, xmm1, 27"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x1c", "vpextrq rax, xmm1, 28"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x1d", "vpextrq rax, xmm1, 29"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x1e", "vpextrq rax, xmm1, 30"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x1f", "vpextrq rax, xmm1, 31"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x20", "vpextrq rax, xmm1, 32"), - (None, [], b"\xc4\xe3\xf9\x16\xc8\x21", "vpextrq rax, xmm1, 33"), - - (None, [], b"\xc5\xf9\xc5\xc1\x00", "vpextrw eax, xmm1, 0"), - (None, [], b"\xc5\xf9\xc5\xc1\x01", "vpextrw eax, xmm1, 1"), - (None, [], b"\xc5\xf9\xc5\xc1\x02", "vpextrw eax, xmm1, 2"), - (None, [], b"\xc5\xf9\xc5\xc1\x03", "vpextrw eax, xmm1, 3"), - (None, [], b"\xc5\xf9\xc5\xc1\x04", "vpextrw eax, xmm1, 4"), - (None, [], b"\xc5\xf9\xc5\xc1\x05", "vpextrw eax, xmm1, 5"), - (None, [], b"\xc5\xf9\xc5\xc1\x06", "vpextrw eax, xmm1, 6"), - (None, [], b"\xc5\xf9\xc5\xc1\x07", "vpextrw eax, xmm1, 7"), - (None, [], b"\xc5\xf9\xc5\xc1\x08", "vpextrw eax, xmm1, 8"), - (None, [], b"\xc5\xf9\xc5\xc1\x09", "vpextrw eax, xmm1, 9"), - (None, [], b"\xc5\xf9\xc5\xc1\x0a", "vpextrw eax, xmm1, 10"), - (None, [], b"\xc5\xf9\xc5\xc1\x0b", "vpextrw eax, xmm1, 11"), - (None, [], b"\xc5\xf9\xc5\xc1\x0c", "vpextrw eax, xmm1, 12"), - (None, [], b"\xc5\xf9\xc5\xc1\x0d", "vpextrw eax, xmm1, 13"), - (None, [], b"\xc5\xf9\xc5\xc1\x0e", "vpextrw eax, xmm1, 14"), - (None, [], b"\xc5\xf9\xc5\xc1\x0f", "vpextrw eax, xmm1, 15"), - (None, [], b"\xc5\xf9\xc5\xc1\x10", "vpextrw eax, xmm1, 16"), - (None, [], b"\xc5\xf9\xc5\xc1\x11", "vpextrw eax, xmm1, 17"), - (None, [], b"\xc5\xf9\xc5\xc1\x12", "vpextrw eax, xmm1, 18"), - (None, [], b"\xc5\xf9\xc5\xc1\x13", "vpextrw eax, xmm1, 19"), - (None, [], b"\xc5\xf9\xc5\xc1\x14", "vpextrw eax, xmm1, 20"), - (None, [], b"\xc5\xf9\xc5\xc1\x15", "vpextrw eax, xmm1, 21"), - (None, [], b"\xc5\xf9\xc5\xc1\x16", "vpextrw eax, xmm1, 22"), - (None, [], b"\xc5\xf9\xc5\xc1\x17", "vpextrw eax, xmm1, 23"), - (None, [], b"\xc5\xf9\xc5\xc1\x18", "vpextrw eax, xmm1, 24"), - (None, [], b"\xc5\xf9\xc5\xc1\x19", "vpextrw eax, xmm1, 25"), - (None, [], b"\xc5\xf9\xc5\xc1\x1a", "vpextrw eax, xmm1, 26"), - (None, [], b"\xc5\xf9\xc5\xc1\x1b", "vpextrw eax, xmm1, 27"), - (None, [], b"\xc5\xf9\xc5\xc1\x1c", "vpextrw eax, xmm1, 28"), - (None, [], b"\xc5\xf9\xc5\xc1\x1d", "vpextrw eax, xmm1, 29"), - (None, [], b"\xc5\xf9\xc5\xc1\x1e", "vpextrw eax, xmm1, 30"), - (None, [], b"\xc5\xf9\xc5\xc1\x1f", "vpextrw eax, xmm1, 31"), - (None, [], b"\xc5\xf9\xc5\xc1\x20", "vpextrw eax, xmm1, 32"), - (None, [], b"\xc5\xf9\xc5\xc1\x21", "vpextrw eax, xmm1, 33"), - - (None, [], b"\x48\xb8\xaf\xbe\xad\xde\xaf\xbe\xad\xde", "mov rax, 0xdeadbeafdeadbeaf"), - (None, [], b"\x48\xc7\xc3\x00\x00\x20\x00", "mov rbx, 0x300010"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x00", "pinsrb xmm1, eax, 0"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x01", "pinsrb xmm1, eax, 1"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x02", "pinsrb xmm1, eax, 2"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x03", "pinsrb xmm1, eax, 3"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x04", "pinsrb xmm1, eax, 4"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x05", "pinsrb xmm1, eax, 5"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x06", "pinsrb xmm1, eax, 6"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x07", "pinsrb xmm1, eax, 7"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x08", "pinsrb xmm1, eax, 8"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x09", "pinsrb xmm1, eax, 9"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x0a", "pinsrb xmm1, eax, 10"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x0b", "pinsrb xmm1, eax, 11"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x0c", "pinsrb xmm1, eax, 12"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x0d", "pinsrb xmm1, eax, 13"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x0e", "pinsrb xmm1, eax, 14"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x0f", "pinsrb xmm1, eax, 15"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x10", "pinsrb xmm1, eax, 16"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x11", "pinsrb xmm1, eax, 17"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x12", "pinsrb xmm1, eax, 18"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x13", "pinsrb xmm1, eax, 19"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x14", "pinsrb xmm1, eax, 20"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x15", "pinsrb xmm1, eax, 21"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x16", "pinsrb xmm1, eax, 22"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x17", "pinsrb xmm1, eax, 23"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x18", "pinsrb xmm1, eax, 24"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x19", "pinsrb xmm1, eax, 25"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x1a", "pinsrb xmm1, eax, 26"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x1b", "pinsrb xmm1, eax, 27"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x1c", "pinsrb xmm1, eax, 28"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x1d", "pinsrb xmm1, eax, 29"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x1e", "pinsrb xmm1, eax, 30"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x1f", "pinsrb xmm1, eax, 31"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x20", "pinsrb xmm1, eax, 32"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x20\xc8\x21", "pinsrb xmm1, eax, 33"), - - - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x00", "pinsrd xmm1, eax, 0"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x01", "pinsrd xmm1, eax, 1"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x02", "pinsrd xmm1, eax, 2"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x03", "pinsrd xmm1, eax, 3"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x04", "pinsrd xmm1, eax, 4"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x05", "pinsrd xmm1, eax, 5"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x06", "pinsrd xmm1, eax, 6"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x07", "pinsrd xmm1, eax, 7"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x08", "pinsrd xmm1, eax, 8"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x09", "pinsrd xmm1, eax, 9"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x0a", "pinsrd xmm1, eax, 10"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x0b", "pinsrd xmm1, eax, 11"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x0c", "pinsrd xmm1, eax, 12"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x0d", "pinsrd xmm1, eax, 13"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x0e", "pinsrd xmm1, eax, 14"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x0f", "pinsrd xmm1, eax, 15"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x10", "pinsrd xmm1, eax, 16"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x11", "pinsrd xmm1, eax, 17"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x12", "pinsrd xmm1, eax, 18"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x13", "pinsrd xmm1, eax, 19"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x14", "pinsrd xmm1, eax, 20"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x15", "pinsrd xmm1, eax, 21"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x16", "pinsrd xmm1, eax, 22"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x17", "pinsrd xmm1, eax, 23"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x18", "pinsrd xmm1, eax, 24"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x19", "pinsrd xmm1, eax, 25"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x1a", "pinsrd xmm1, eax, 26"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x1b", "pinsrd xmm1, eax, 27"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x1c", "pinsrd xmm1, eax, 28"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x1d", "pinsrd xmm1, eax, 29"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x1e", "pinsrd xmm1, eax, 30"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x1f", "pinsrd xmm1, eax, 31"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x20", "pinsrd xmm1, eax, 32"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\x3a\x22\xc8\x21", "pinsrd xmm1, eax, 33"), - - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x00", "pinsrq xmm1, rax, 0"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x01", "pinsrq xmm1, rax, 1"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x02", "pinsrq xmm1, rax, 2"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x03", "pinsrq xmm1, rax, 3"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x04", "pinsrq xmm1, rax, 4"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x05", "pinsrq xmm1, rax, 5"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x06", "pinsrq xmm1, rax, 6"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x07", "pinsrq xmm1, rax, 7"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x08", "pinsrq xmm1, rax, 8"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x09", "pinsrq xmm1, rax, 9"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x0a", "pinsrq xmm1, rax, 10"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x0b", "pinsrq xmm1, rax, 11"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x0c", "pinsrq xmm1, rax, 12"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x0d", "pinsrq xmm1, rax, 13"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x0e", "pinsrq xmm1, rax, 14"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x0f", "pinsrq xmm1, rax, 15"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x10", "pinsrq xmm1, rax, 16"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x11", "pinsrq xmm1, rax, 17"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x12", "pinsrq xmm1, rax, 18"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x13", "pinsrq xmm1, rax, 19"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x14", "pinsrq xmm1, rax, 20"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x15", "pinsrq xmm1, rax, 21"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x16", "pinsrq xmm1, rax, 22"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x17", "pinsrq xmm1, rax, 23"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x18", "pinsrq xmm1, rax, 24"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x19", "pinsrq xmm1, rax, 25"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x1a", "pinsrq xmm1, rax, 26"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x1b", "pinsrq xmm1, rax, 27"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x1c", "pinsrq xmm1, rax, 28"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x1d", "pinsrq xmm1, rax, 29"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x1e", "pinsrq xmm1, rax, 30"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x1f", "pinsrq xmm1, rax, 31"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x20", "pinsrq xmm1, rax, 32"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x21", "pinsrq xmm1, rax, 33"), - - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x00", "pinsrw xmm1, eax, 0"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x01", "pinsrw xmm1, eax, 1"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x02", "pinsrw xmm1, eax, 2"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x03", "pinsrw xmm1, eax, 3"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x04", "pinsrw xmm1, eax, 4"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x05", "pinsrw xmm1, eax, 5"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x06", "pinsrw xmm1, eax, 6"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x07", "pinsrw xmm1, eax, 7"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x08", "pinsrw xmm1, eax, 8"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x09", "pinsrw xmm1, eax, 9"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x0a", "pinsrw xmm1, eax, 10"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x0b", "pinsrw xmm1, eax, 11"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x0c", "pinsrw xmm1, eax, 12"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x0d", "pinsrw xmm1, eax, 13"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x0e", "pinsrw xmm1, eax, 14"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x0f", "pinsrw xmm1, eax, 15"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x10", "pinsrw xmm1, eax, 16"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x11", "pinsrw xmm1, eax, 17"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x12", "pinsrw xmm1, eax, 18"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x13", "pinsrw xmm1, eax, 19"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x14", "pinsrw xmm1, eax, 20"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x15", "pinsrw xmm1, eax, 21"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x16", "pinsrw xmm1, eax, 22"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x17", "pinsrw xmm1, eax, 23"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x18", "pinsrw xmm1, eax, 24"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x19", "pinsrw xmm1, eax, 25"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x1a", "pinsrw xmm1, eax, 26"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x1b", "pinsrw xmm1, eax, 27"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x1c", "pinsrw xmm1, eax, 28"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x1d", "pinsrw xmm1, eax, 29"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x1e", "pinsrw xmm1, eax, 30"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x1f", "pinsrw xmm1, eax, 31"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x20", "pinsrw xmm1, eax, 32"), - (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), - (None, [], b"\x66\x0f\xc4\xc8\x21", "pinsrw xmm1, eax, 33"), - - ({'eflags':2}, [], b"\x90", "nop"), - (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), - (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), - (None, [], b"\xf3\x48\x0f\xbd\xd8", "lzcnt rbx, rax"), - (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), - (None, [], b"\x48\xc7\xc3\x01\x00\x00\x00", "mov rbx, 0x1"), - (None, [], b"\xf3\x48\x0f\xbd\xd8", "lzcnt rbx, rax"), - (None, [], b"\x48\xc7\xc0\x01\x00\x00\x00", "mov rax, 0x1"), - (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), - (None, [], b"\xf3\x48\x0f\xbd\xd8", "lzcnt rbx, rax"), - (None, [], b"\x48\xc7\xc0\x02\x00\x00\x00", "mov rax, 0x2"), - (None, [], b"\xf3\x48\x0f\xbd\xd8", "lzcnt rbx, rax"), - (None, [], b"\x48\xc7\xc0\x40\x00\x00\x00", "mov rax, 0x40"), - (None, [], b"\xf3\x48\x0f\xbd\xd8", "lzcnt rbx, rax"), - (None, [], b"\x48\xc7\xc0\x00\x10\x00\x00", "mov rax, 0x1000"), - (None, [], b"\xf3\x48\x0f\xbd\xd8", "lzcnt rbx, rax"), - (None, [], b"\x66\xf3\x0f\xbd\xd8", "lzcnt bx, ax"), - (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), - (None, [], b"\xf3\x48\x0f\xbd\xd8", "lzcnt rbx, rax"), - (None, [], b"\x48\xb8\x00\x00\x00\x00\x00\x00\x00\x80", "movabs rax, 0x8000000000000000"), - (None, [], b"\xf3\x48\x0f\xbd\xd8", "lzcnt rbx, rax"), - (None, [], b"\x48\xc7\xc0\xff\xff\xff\xff", "mov rax, 0xffffffffffffffff"), - (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), - (None, [], b"\xf3\x48\x0f\xbd\xd8", "lzcnt rbx, rax"), - - (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), - (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), - (None, [], b"\xf3\x0f\xbd\xd8", "lzcnt ebx, eax"), - (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), - (None, [], b"\x48\xc7\xc3\x01\x00\x00\x00", "mov rbx, 0x1"), - (None, [], b"\xf3\x0f\xbd\xd8", "lzcnt ebx, eax"), - (None, [], b"\x48\xc7\xc0\x01\x00\x00\x00", "mov rax, 0x1"), - (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), - (None, [], b"\xf3\x0f\xbd\xd8", "lzcnt ebx, eax"), - (None, [], b"\x48\xc7\xc0\x02\x00\x00\x00", "mov rax, 0x2"), - (None, [], b"\xf3\x0f\xbd\xd8", "lzcnt ebx, eax"), - (None, [], b"\x48\xc7\xc0\x40\x00\x00\x00", "mov rax, 0x40"), - (None, [], b"\xf3\x0f\xbd\xd8", "lzcnt ebx, eax"), - (None, [], b"\x48\xc7\xc0\x00\x10\x00\x00", "mov rax, 0x1000"), - (None, [], b"\xf3\x0f\xbd\xd8", "lzcnt ebx, eax"), - (None, [], b"\x66\xf3\x0f\xbd\xd8", "lzcnt bx, ax"), - (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), - (None, [], b"\xf3\x0f\xbd\xd8", "lzcnt ebx, eax"), - (None, [], b"\x48\xb8\x00\x00\x00\x00\x00\x00\x00\x80", "movabs rax, 0x8000000000000000"), - (None, [], b"\xf3\x0f\xbd\xd8", "lzcnt ebx, eax"), - (None, [], b"\x48\xc7\xc0\xff\xff\xff\xff", "mov rax, 0xffffffffffffffff"), - (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), - (None, [], b"\xf3\x0f\xbd\xd8", "lzcnt ebx, eax"), - - (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), - (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), - (None, [], b"\xf3\x48\x0f\xbc\xd8", "tzcnt rbx, rax"), - (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), - (None, [], b"\x48\xc7\xc3\x01\x00\x00\x00", "mov rbx, 0x1"), - (None, [], b"\xf3\x48\x0f\xbc\xd8", "tzcnt rbx, rax"), - (None, [], b"\x48\xc7\xc0\x01\x00\x00\x00", "mov rax, 0x1"), - (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), - (None, [], b"\xf3\x48\x0f\xbc\xd8", "tzcnt rbx, rax"), - (None, [], b"\x48\xc7\xc0\x02\x00\x00\x00", "mov rax, 0x2"), - (None, [], b"\xf3\x48\x0f\xbc\xd8", "tzcnt rbx, rax"), - (None, [], b"\x48\xc7\xc0\x40\x00\x00\x00", "mov rax, 0x40"), - (None, [], b"\xf3\x48\x0f\xbc\xd8", "tzcnt rbx, rax"), - (None, [], b"\x48\xc7\xc0\x00\x10\x00\x00", "mov rax, 0x1000"), - (None, [], b"\x66\xf3\x0f\xbc\xd8", "tzcnt bx, ax"), - (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), - (None, [], b"\xf3\x48\x0f\xbc\xd8", "tzcnt rbx, rax"), - (None, [], b"\x48\xb8\x00\x00\x00\x00\x00\x00\x00\x80", "movabs rax, 0x8000000000000000"), - (None, [], b"\xf3\x48\x0f\xbc\xd8", "tzcnt rbx, rax"), - (None, [], b"\x48\xc7\xc0\xff\xff\xff\xff", "mov rax, 0xffffffffffffffff"), - (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), - (None, [], b"\xf3\x48\x0f\xbc\xd8", "tzcnt rbx, rax"), - - (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), - (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), - (None, [], b"\xf3\x0f\xbc\xd8", "tzcnt ebx, eax"), - (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), - (None, [], b"\x48\xc7\xc3\x01\x00\x00\x00", "mov rbx, 0x1"), - (None, [], b"\xf3\x0f\xbc\xd8", "tzcnt ebx, eax"), - (None, [], b"\x48\xc7\xc0\x01\x00\x00\x00", "mov rax, 0x1"), - (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), - (None, [], b"\xf3\x0f\xbc\xd8", "tzcnt ebx, eax"), - (None, [], b"\x48\xc7\xc0\x02\x00\x00\x00", "mov rax, 0x2"), - (None, [], b"\xf3\x0f\xbc\xd8", "tzcnt ebx, eax"), - (None, [], b"\x48\xc7\xc0\x40\x00\x00\x00", "mov rax, 0x40"), - (None, [], b"\xf3\x0f\xbc\xd8", "tzcnt ebx, eax"), - (None, [], b"\x48\xc7\xc0\x00\x10\x00\x00", "mov rax, 0x1000"), - (None, [], b"\x66\xf3\x0f\xbc\xd8", "tzcnt bx, ax"), - (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), - (None, [], b"\xf3\x0f\xbc\xd8", "tzcnt ebx, eax"), - (None, [], b"\x48\xb8\x00\x00\x00\x00\x00\x00\x00\x80", "movabs rax, 0x8000000000000000"), - (None, [], b"\xf3\x0f\xbc\xd8", "tzcnt ebx, eax"), - (None, [], b"\x48\xc7\xc0\xff\xff\xff\xff", "mov rax, 0xffffffffffffffff"), - (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), - (None, [], b"\xf3\x0f\xbc\xd8", "tzcnt ebx, eax"), - - (None, [], b"\x48\xB8\x11\x11\x11\x11\x11\x11\x11\x11", "movabs rax, 1111111111111111"), - (None, [], b"\x66\x48\x0F\x6E\xC0", "movq xmm0, rax"), - (None, [], b"\x66\x48\x0F\x3A\x22\xC0\x01", "pinsrq xmm0, rax, 1"), - (None, [], b"\x48\xB8\x22\x22\x22\x22\x22\x22\x22\x22", "movabs rax, 2222222222222222"), - (None, [], b"\x66\x48\x0F\x6E\xC8", "movq xmm1, rax"), - (None, [], b"\x66\x48\x0F\x3A\x22\xC8\x01", "pinsrq xmm1, rax, 1"), - (None, [], b"\xC5\xF9\xEB\xC1", "vpor xmm0, xmm0, xmm1"), + # (None, [], b"\x48\xb8\x44\x33\x22\x11\x00\x00\x00\x00", "mov rax, 0x11223344"), + # (None, [], b"\x48\xff\xc0", "inc rax"), + # (None, [], b"\x48\xc7\xc3\x00\x00\x20\x00", "mov rbx, 0x200000"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x00", "pextrb eax, xmm1, 0"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x01", "pextrb eax, xmm1, 1"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x02", "pextrb eax, xmm1, 2"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x03", "pextrb eax, xmm1, 3"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x04", "pextrb eax, xmm1, 4"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x05", "pextrb eax, xmm1, 5"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x06", "pextrb eax, xmm1, 6"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x07", "pextrb eax, xmm1, 7"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x08", "pextrb eax, xmm1, 8"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x09", "pextrb eax, xmm1, 9"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x0a", "pextrb eax, xmm1, 10"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x0b", "pextrb eax, xmm1, 11"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x0c", "pextrb eax, xmm1, 12"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x0d", "pextrb eax, xmm1, 13"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x0e", "pextrb eax, xmm1, 14"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x0f", "pextrb eax, xmm1, 15"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x10", "pextrb eax, xmm1, 16"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x11", "pextrb eax, xmm1, 17"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x12", "pextrb eax, xmm1, 18"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x13", "pextrb eax, xmm1, 19"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x14", "pextrb eax, xmm1, 20"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x15", "pextrb eax, xmm1, 21"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x16", "pextrb eax, xmm1, 22"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x17", "pextrb eax, xmm1, 23"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x18", "pextrb eax, xmm1, 24"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x19", "pextrb eax, xmm1, 25"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x1a", "pextrb eax, xmm1, 26"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x1b", "pextrb eax, xmm1, 27"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x1c", "pextrb eax, xmm1, 28"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x1d", "pextrb eax, xmm1, 29"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x1e", "pextrb eax, xmm1, 30"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x1f", "pextrb eax, xmm1, 31"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x20", "pextrb eax, xmm1, 32"), + # (None, [], b"\x66\x0f\x3a\x14\xc8\x21", "pextrb eax, xmm1, 33"), + + # (None, [], b"\x66\x0f\x3a\x16\xc8\x00", "pextrd eax, xmm1, 0"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x01", "pextrd eax, xmm1, 1"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x02", "pextrd eax, xmm1, 2"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x03", "pextrd eax, xmm1, 3"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x04", "pextrd eax, xmm1, 4"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x05", "pextrd eax, xmm1, 5"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x06", "pextrd eax, xmm1, 6"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x07", "pextrd eax, xmm1, 7"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x08", "pextrd eax, xmm1, 8"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x09", "pextrd eax, xmm1, 9"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x0a", "pextrd eax, xmm1, 10"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x0b", "pextrd eax, xmm1, 11"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x0c", "pextrd eax, xmm1, 12"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x0d", "pextrd eax, xmm1, 13"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x0e", "pextrd eax, xmm1, 14"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x0f", "pextrd eax, xmm1, 15"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x10", "pextrd eax, xmm1, 16"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x11", "pextrd eax, xmm1, 17"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x12", "pextrd eax, xmm1, 18"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x13", "pextrd eax, xmm1, 19"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x14", "pextrd eax, xmm1, 20"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x15", "pextrd eax, xmm1, 21"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x16", "pextrd eax, xmm1, 22"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x17", "pextrd eax, xmm1, 23"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x18", "pextrd eax, xmm1, 24"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x19", "pextrd eax, xmm1, 25"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x1a", "pextrd eax, xmm1, 26"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x1b", "pextrd eax, xmm1, 27"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x1c", "pextrd eax, xmm1, 28"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x1d", "pextrd eax, xmm1, 29"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x1e", "pextrd eax, xmm1, 30"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x1f", "pextrd eax, xmm1, 31"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x20", "pextrd eax, xmm1, 32"), + # (None, [], b"\x66\x0f\x3a\x16\xc8\x21", "pextrd eax, xmm1, 33"), + + # (None, [], b"\x66\x0f\x3a\x16\x0b\x00", "pextrd [rbx], xmm1, 0"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x01", "pextrd [rbx], xmm1, 1"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x02", "pextrd [rbx], xmm1, 2"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x03", "pextrd [rbx], xmm1, 3"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x04", "pextrd [rbx], xmm1, 4"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x05", "pextrd [rbx], xmm1, 5"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x06", "pextrd [rbx], xmm1, 6"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x07", "pextrd [rbx], xmm1, 7"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x08", "pextrd [rbx], xmm1, 8"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x09", "pextrd [rbx], xmm1, 9"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x0a", "pextrd [rbx], xmm1, 10"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x0b", "pextrd [rbx], xmm1, 11"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x0c", "pextrd [rbx], xmm1, 12"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x0d", "pextrd [rbx], xmm1, 13"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x0e", "pextrd [rbx], xmm1, 14"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x0f", "pextrd [rbx], xmm1, 15"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x10", "pextrd [rbx], xmm1, 16"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x11", "pextrd [rbx], xmm1, 17"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x12", "pextrd [rbx], xmm1, 18"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x13", "pextrd [rbx], xmm1, 19"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x14", "pextrd [rbx], xmm1, 20"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x15", "pextrd [rbx], xmm1, 21"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x16", "pextrd [rbx], xmm1, 22"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x17", "pextrd [rbx], xmm1, 23"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x18", "pextrd [rbx], xmm1, 24"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x19", "pextrd [rbx], xmm1, 25"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x1a", "pextrd [rbx], xmm1, 26"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x1b", "pextrd [rbx], xmm1, 27"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x1c", "pextrd [rbx], xmm1, 28"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x1d", "pextrd [rbx], xmm1, 29"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x1e", "pextrd [rbx], xmm1, 30"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x1f", "pextrd [rbx], xmm1, 31"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x20", "pextrd [rbx], xmm1, 32"), + # (None, [], b"\x66\x0f\x3a\x16\x0b\x21", "pextrd [rbx], xmm1, 33"), + + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x00", "pextrq rax, xmm1, 0"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x01", "pextrq rax, xmm1, 1"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x02", "pextrq rax, xmm1, 2"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x03", "pextrq rax, xmm1, 3"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x04", "pextrq rax, xmm1, 4"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x05", "pextrq rax, xmm1, 5"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x06", "pextrq rax, xmm1, 6"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x07", "pextrq rax, xmm1, 7"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x08", "pextrq rax, xmm1, 8"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x09", "pextrq rax, xmm1, 9"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x0a", "pextrq rax, xmm1, 10"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x0b", "pextrq rax, xmm1, 11"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x0c", "pextrq rax, xmm1, 12"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x0d", "pextrq rax, xmm1, 13"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x0e", "pextrq rax, xmm1, 14"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x0f", "pextrq rax, xmm1, 15"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x10", "pextrq rax, xmm1, 16"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x11", "pextrq rax, xmm1, 17"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x12", "pextrq rax, xmm1, 18"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x13", "pextrq rax, xmm1, 19"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x14", "pextrq rax, xmm1, 20"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x15", "pextrq rax, xmm1, 21"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x16", "pextrq rax, xmm1, 22"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x17", "pextrq rax, xmm1, 23"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x18", "pextrq rax, xmm1, 24"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x19", "pextrq rax, xmm1, 25"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x1a", "pextrq rax, xmm1, 26"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x1b", "pextrq rax, xmm1, 27"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x1c", "pextrq rax, xmm1, 28"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x1d", "pextrq rax, xmm1, 29"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x1e", "pextrq rax, xmm1, 30"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x1f", "pextrq rax, xmm1, 31"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x20", "pextrq rax, xmm1, 32"), + # (None, [], b"\x66\x48\x0f\x3a\x16\xc8\x21", "pextrq rax, xmm1, 33"), + + # (None, [], b"\x66\x0f\xc5\xc1\x00", "pextrw eax, xmm1, 0"), + # (None, [], b"\x66\x0f\xc5\xc1\x01", "pextrw eax, xmm1, 1"), + # (None, [], b"\x66\x0f\xc5\xc1\x02", "pextrw eax, xmm1, 2"), + # (None, [], b"\x66\x0f\xc5\xc1\x03", "pextrw eax, xmm1, 3"), + # (None, [], b"\x66\x0f\xc5\xc1\x04", "pextrw eax, xmm1, 4"), + # (None, [], b"\x66\x0f\xc5\xc1\x05", "pextrw eax, xmm1, 5"), + # (None, [], b"\x66\x0f\xc5\xc1\x06", "pextrw eax, xmm1, 6"), + # (None, [], b"\x66\x0f\xc5\xc1\x07", "pextrw eax, xmm1, 7"), + # (None, [], b"\x66\x0f\xc5\xc1\x08", "pextrw eax, xmm1, 8"), + # (None, [], b"\x66\x0f\xc5\xc1\x09", "pextrw eax, xmm1, 9"), + # (None, [], b"\x66\x0f\xc5\xc1\x0a", "pextrw eax, xmm1, 10"), + # (None, [], b"\x66\x0f\xc5\xc1\x0b", "pextrw eax, xmm1, 11"), + # (None, [], b"\x66\x0f\xc5\xc1\x0c", "pextrw eax, xmm1, 12"), + # (None, [], b"\x66\x0f\xc5\xc1\x0d", "pextrw eax, xmm1, 13"), + # (None, [], b"\x66\x0f\xc5\xc1\x0e", "pextrw eax, xmm1, 14"), + # (None, [], b"\x66\x0f\xc5\xc1\x0f", "pextrw eax, xmm1, 15"), + # (None, [], b"\x66\x0f\xc5\xc1\x10", "pextrw eax, xmm1, 16"), + # (None, [], b"\x66\x0f\xc5\xc1\x11", "pextrw eax, xmm1, 17"), + # (None, [], b"\x66\x0f\xc5\xc1\x12", "pextrw eax, xmm1, 18"), + # (None, [], b"\x66\x0f\xc5\xc1\x13", "pextrw eax, xmm1, 19"), + # (None, [], b"\x66\x0f\xc5\xc1\x14", "pextrw eax, xmm1, 20"), + # (None, [], b"\x66\x0f\xc5\xc1\x15", "pextrw eax, xmm1, 21"), + # (None, [], b"\x66\x0f\xc5\xc1\x16", "pextrw eax, xmm1, 22"), + # (None, [], b"\x66\x0f\xc5\xc1\x17", "pextrw eax, xmm1, 23"), + # (None, [], b"\x66\x0f\xc5\xc1\x18", "pextrw eax, xmm1, 24"), + # (None, [], b"\x66\x0f\xc5\xc1\x19", "pextrw eax, xmm1, 25"), + # (None, [], b"\x66\x0f\xc5\xc1\x1a", "pextrw eax, xmm1, 26"), + # (None, [], b"\x66\x0f\xc5\xc1\x1b", "pextrw eax, xmm1, 27"), + # (None, [], b"\x66\x0f\xc5\xc1\x1c", "pextrw eax, xmm1, 28"), + # (None, [], b"\x66\x0f\xc5\xc1\x1d", "pextrw eax, xmm1, 29"), + # (None, [], b"\x66\x0f\xc5\xc1\x1e", "pextrw eax, xmm1, 30"), + # (None, [], b"\x66\x0f\xc5\xc1\x1f", "pextrw eax, xmm1, 31"), + # (None, [], b"\x66\x0f\xc5\xc1\x20", "pextrw eax, xmm1, 32"), + # (None, [], b"\x66\x0f\xc5\xc1\x21", "pextrw eax, xmm1, 33"), + + # (None, [], b"\x0f\xc5\xc1\x00", "pextrw eax, mm1, 0"), + # (None, [], b"\x0f\xc5\xc1\x01", "pextrw eax, mm1, 1"), + # (None, [], b"\x0f\xc5\xc1\x02", "pextrw eax, mm1, 2"), + # (None, [], b"\x0f\xc5\xc1\x03", "pextrw eax, mm1, 3"), + # (None, [], b"\x0f\xc5\xc1\x04", "pextrw eax, mm1, 4"), + # (None, [], b"\x0f\xc5\xc1\x05", "pextrw eax, mm1, 5"), + # (None, [], b"\x0f\xc5\xc1\x06", "pextrw eax, mm1, 6"), + # (None, [], b"\x0f\xc5\xc1\x07", "pextrw eax, mm1, 7"), + # (None, [], b"\x0f\xc5\xc1\x08", "pextrw eax, mm1, 8"), + # (None, [], b"\x0f\xc5\xc1\x09", "pextrw eax, mm1, 9"), + # (None, [], b"\x0f\xc5\xc1\x0a", "pextrw eax, mm1, 10"), + # (None, [], b"\x0f\xc5\xc1\x0b", "pextrw eax, mm1, 11"), + # (None, [], b"\x0f\xc5\xc1\x0c", "pextrw eax, mm1, 12"), + # (None, [], b"\x0f\xc5\xc1\x0d", "pextrw eax, mm1, 13"), + # (None, [], b"\x0f\xc5\xc1\x0e", "pextrw eax, mm1, 14"), + # (None, [], b"\x0f\xc5\xc1\x0f", "pextrw eax, mm1, 15"), + # (None, [], b"\x0f\xc5\xc1\x10", "pextrw eax, mm1, 16"), + # (None, [], b"\x0f\xc5\xc1\x11", "pextrw eax, mm1, 17"), + # (None, [], b"\x0f\xc5\xc1\x12", "pextrw eax, mm1, 18"), + # (None, [], b"\x0f\xc5\xc1\x13", "pextrw eax, mm1, 19"), + # (None, [], b"\x0f\xc5\xc1\x14", "pextrw eax, mm1, 20"), + # (None, [], b"\x0f\xc5\xc1\x15", "pextrw eax, mm1, 21"), + # (None, [], b"\x0f\xc5\xc1\x16", "pextrw eax, mm1, 22"), + # (None, [], b"\x0f\xc5\xc1\x17", "pextrw eax, mm1, 23"), + # (None, [], b"\x0f\xc5\xc1\x18", "pextrw eax, mm1, 24"), + # (None, [], b"\x0f\xc5\xc1\x19", "pextrw eax, mm1, 25"), + # (None, [], b"\x0f\xc5\xc1\x1a", "pextrw eax, mm1, 26"), + # (None, [], b"\x0f\xc5\xc1\x1b", "pextrw eax, mm1, 27"), + # (None, [], b"\x0f\xc5\xc1\x1c", "pextrw eax, mm1, 28"), + # (None, [], b"\x0f\xc5\xc1\x1d", "pextrw eax, mm1, 29"), + # (None, [], b"\x0f\xc5\xc1\x1e", "pextrw eax, mm1, 30"), + # (None, [], b"\x0f\xc5\xc1\x1f", "pextrw eax, mm1, 31"), + # (None, [], b"\x0f\xc5\xc1\x20", "pextrw eax, mm1, 32"), + # (None, [], b"\x0f\xc5\xc1\x21", "pextrw eax, mm1, 33"), + + # (None, [], b"\xc4\xe3\x79\x14\xc8\x00", "vpextrb eax, xmm1, 0"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x01", "vpextrb eax, xmm1, 1"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x02", "vpextrb eax, xmm1, 2"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x03", "vpextrb eax, xmm1, 3"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x04", "vpextrb eax, xmm1, 4"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x05", "vpextrb eax, xmm1, 5"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x06", "vpextrb eax, xmm1, 6"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x07", "vpextrb eax, xmm1, 7"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x08", "vpextrb eax, xmm1, 8"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x09", "vpextrb eax, xmm1, 9"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x0a", "vpextrb eax, xmm1, 10"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x0b", "vpextrb eax, xmm1, 11"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x0c", "vpextrb eax, xmm1, 12"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x0d", "vpextrb eax, xmm1, 13"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x0e", "vpextrb eax, xmm1, 14"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x0f", "vpextrb eax, xmm1, 15"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x10", "vpextrb eax, xmm1, 16"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x11", "vpextrb eax, xmm1, 17"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x12", "vpextrb eax, xmm1, 18"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x13", "vpextrb eax, xmm1, 19"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x14", "vpextrb eax, xmm1, 20"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x15", "vpextrb eax, xmm1, 21"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x16", "vpextrb eax, xmm1, 22"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x17", "vpextrb eax, xmm1, 23"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x18", "vpextrb eax, xmm1, 24"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x19", "vpextrb eax, xmm1, 25"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x1a", "vpextrb eax, xmm1, 26"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x1b", "vpextrb eax, xmm1, 27"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x1c", "vpextrb eax, xmm1, 28"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x1d", "vpextrb eax, xmm1, 29"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x1e", "vpextrb eax, xmm1, 30"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x1f", "vpextrb eax, xmm1, 31"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x20", "vpextrb eax, xmm1, 32"), + # (None, [], b"\xc4\xe3\x79\x14\xc8\x21", "vpextrb eax, xmm1, 33"), + + # (None, [], b"\xc4\xe3\x79\x16\xc8\x00", "vpextrd eax, xmm1, 0"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x01", "vpextrd eax, xmm1, 1"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x02", "vpextrd eax, xmm1, 2"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x03", "vpextrd eax, xmm1, 3"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x04", "vpextrd eax, xmm1, 4"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x05", "vpextrd eax, xmm1, 5"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x06", "vpextrd eax, xmm1, 6"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x07", "vpextrd eax, xmm1, 7"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x08", "vpextrd eax, xmm1, 8"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x09", "vpextrd eax, xmm1, 9"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x0a", "vpextrd eax, xmm1, 10"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x0b", "vpextrd eax, xmm1, 11"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x0c", "vpextrd eax, xmm1, 12"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x0d", "vpextrd eax, xmm1, 13"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x0e", "vpextrd eax, xmm1, 14"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x0f", "vpextrd eax, xmm1, 15"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x10", "vpextrd eax, xmm1, 16"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x11", "vpextrd eax, xmm1, 17"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x12", "vpextrd eax, xmm1, 18"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x13", "vpextrd eax, xmm1, 19"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x14", "vpextrd eax, xmm1, 20"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x15", "vpextrd eax, xmm1, 21"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x16", "vpextrd eax, xmm1, 22"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x17", "vpextrd eax, xmm1, 23"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x18", "vpextrd eax, xmm1, 24"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x19", "vpextrd eax, xmm1, 25"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x1a", "vpextrd eax, xmm1, 26"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x1b", "vpextrd eax, xmm1, 27"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x1c", "vpextrd eax, xmm1, 28"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x1d", "vpextrd eax, xmm1, 29"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x1e", "vpextrd eax, xmm1, 30"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x1f", "vpextrd eax, xmm1, 31"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x20", "vpextrd eax, xmm1, 32"), + # (None, [], b"\xc4\xe3\x79\x16\xc8\x21", "vpextrd eax, xmm1, 33"), + + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x00", "vpextrq rax, xmm1, 0"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x01", "vpextrq rax, xmm1, 1"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x02", "vpextrq rax, xmm1, 2"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x03", "vpextrq rax, xmm1, 3"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x04", "vpextrq rax, xmm1, 4"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x05", "vpextrq rax, xmm1, 5"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x06", "vpextrq rax, xmm1, 6"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x07", "vpextrq rax, xmm1, 7"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x08", "vpextrq rax, xmm1, 8"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x09", "vpextrq rax, xmm1, 9"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x0a", "vpextrq rax, xmm1, 10"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x0b", "vpextrq rax, xmm1, 11"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x0c", "vpextrq rax, xmm1, 12"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x0d", "vpextrq rax, xmm1, 13"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x0e", "vpextrq rax, xmm1, 14"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x0f", "vpextrq rax, xmm1, 15"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x10", "vpextrq rax, xmm1, 16"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x11", "vpextrq rax, xmm1, 17"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x12", "vpextrq rax, xmm1, 18"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x13", "vpextrq rax, xmm1, 19"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x14", "vpextrq rax, xmm1, 20"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x15", "vpextrq rax, xmm1, 21"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x16", "vpextrq rax, xmm1, 22"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x17", "vpextrq rax, xmm1, 23"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x18", "vpextrq rax, xmm1, 24"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x19", "vpextrq rax, xmm1, 25"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x1a", "vpextrq rax, xmm1, 26"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x1b", "vpextrq rax, xmm1, 27"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x1c", "vpextrq rax, xmm1, 28"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x1d", "vpextrq rax, xmm1, 29"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x1e", "vpextrq rax, xmm1, 30"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x1f", "vpextrq rax, xmm1, 31"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x20", "vpextrq rax, xmm1, 32"), + # (None, [], b"\xc4\xe3\xf9\x16\xc8\x21", "vpextrq rax, xmm1, 33"), + + # (None, [], b"\xc5\xf9\xc5\xc1\x00", "vpextrw eax, xmm1, 0"), + # (None, [], b"\xc5\xf9\xc5\xc1\x01", "vpextrw eax, xmm1, 1"), + # (None, [], b"\xc5\xf9\xc5\xc1\x02", "vpextrw eax, xmm1, 2"), + # (None, [], b"\xc5\xf9\xc5\xc1\x03", "vpextrw eax, xmm1, 3"), + # (None, [], b"\xc5\xf9\xc5\xc1\x04", "vpextrw eax, xmm1, 4"), + # (None, [], b"\xc5\xf9\xc5\xc1\x05", "vpextrw eax, xmm1, 5"), + # (None, [], b"\xc5\xf9\xc5\xc1\x06", "vpextrw eax, xmm1, 6"), + # (None, [], b"\xc5\xf9\xc5\xc1\x07", "vpextrw eax, xmm1, 7"), + # (None, [], b"\xc5\xf9\xc5\xc1\x08", "vpextrw eax, xmm1, 8"), + # (None, [], b"\xc5\xf9\xc5\xc1\x09", "vpextrw eax, xmm1, 9"), + # (None, [], b"\xc5\xf9\xc5\xc1\x0a", "vpextrw eax, xmm1, 10"), + # (None, [], b"\xc5\xf9\xc5\xc1\x0b", "vpextrw eax, xmm1, 11"), + # (None, [], b"\xc5\xf9\xc5\xc1\x0c", "vpextrw eax, xmm1, 12"), + # (None, [], b"\xc5\xf9\xc5\xc1\x0d", "vpextrw eax, xmm1, 13"), + # (None, [], b"\xc5\xf9\xc5\xc1\x0e", "vpextrw eax, xmm1, 14"), + # (None, [], b"\xc5\xf9\xc5\xc1\x0f", "vpextrw eax, xmm1, 15"), + # (None, [], b"\xc5\xf9\xc5\xc1\x10", "vpextrw eax, xmm1, 16"), + # (None, [], b"\xc5\xf9\xc5\xc1\x11", "vpextrw eax, xmm1, 17"), + # (None, [], b"\xc5\xf9\xc5\xc1\x12", "vpextrw eax, xmm1, 18"), + # (None, [], b"\xc5\xf9\xc5\xc1\x13", "vpextrw eax, xmm1, 19"), + # (None, [], b"\xc5\xf9\xc5\xc1\x14", "vpextrw eax, xmm1, 20"), + # (None, [], b"\xc5\xf9\xc5\xc1\x15", "vpextrw eax, xmm1, 21"), + # (None, [], b"\xc5\xf9\xc5\xc1\x16", "vpextrw eax, xmm1, 22"), + # (None, [], b"\xc5\xf9\xc5\xc1\x17", "vpextrw eax, xmm1, 23"), + # (None, [], b"\xc5\xf9\xc5\xc1\x18", "vpextrw eax, xmm1, 24"), + # (None, [], b"\xc5\xf9\xc5\xc1\x19", "vpextrw eax, xmm1, 25"), + # (None, [], b"\xc5\xf9\xc5\xc1\x1a", "vpextrw eax, xmm1, 26"), + # (None, [], b"\xc5\xf9\xc5\xc1\x1b", "vpextrw eax, xmm1, 27"), + # (None, [], b"\xc5\xf9\xc5\xc1\x1c", "vpextrw eax, xmm1, 28"), + # (None, [], b"\xc5\xf9\xc5\xc1\x1d", "vpextrw eax, xmm1, 29"), + # (None, [], b"\xc5\xf9\xc5\xc1\x1e", "vpextrw eax, xmm1, 30"), + # (None, [], b"\xc5\xf9\xc5\xc1\x1f", "vpextrw eax, xmm1, 31"), + # (None, [], b"\xc5\xf9\xc5\xc1\x20", "vpextrw eax, xmm1, 32"), + # (None, [], b"\xc5\xf9\xc5\xc1\x21", "vpextrw eax, xmm1, 33"), + + # (None, [], b"\x48\xb8\xaf\xbe\xad\xde\xaf\xbe\xad\xde", "mov rax, 0xdeadbeafdeadbeaf"), + # (None, [], b"\x48\xc7\xc3\x00\x00\x20\x00", "mov rbx, 0x300010"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x00", "pinsrb xmm1, eax, 0"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x01", "pinsrb xmm1, eax, 1"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x02", "pinsrb xmm1, eax, 2"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x03", "pinsrb xmm1, eax, 3"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x04", "pinsrb xmm1, eax, 4"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x05", "pinsrb xmm1, eax, 5"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x06", "pinsrb xmm1, eax, 6"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x07", "pinsrb xmm1, eax, 7"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x08", "pinsrb xmm1, eax, 8"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x09", "pinsrb xmm1, eax, 9"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x0a", "pinsrb xmm1, eax, 10"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x0b", "pinsrb xmm1, eax, 11"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x0c", "pinsrb xmm1, eax, 12"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x0d", "pinsrb xmm1, eax, 13"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x0e", "pinsrb xmm1, eax, 14"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x0f", "pinsrb xmm1, eax, 15"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x10", "pinsrb xmm1, eax, 16"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x11", "pinsrb xmm1, eax, 17"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x12", "pinsrb xmm1, eax, 18"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x13", "pinsrb xmm1, eax, 19"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x14", "pinsrb xmm1, eax, 20"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x15", "pinsrb xmm1, eax, 21"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x16", "pinsrb xmm1, eax, 22"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x17", "pinsrb xmm1, eax, 23"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x18", "pinsrb xmm1, eax, 24"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x19", "pinsrb xmm1, eax, 25"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x1a", "pinsrb xmm1, eax, 26"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x1b", "pinsrb xmm1, eax, 27"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x1c", "pinsrb xmm1, eax, 28"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x1d", "pinsrb xmm1, eax, 29"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x1e", "pinsrb xmm1, eax, 30"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x1f", "pinsrb xmm1, eax, 31"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x20", "pinsrb xmm1, eax, 32"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x20\xc8\x21", "pinsrb xmm1, eax, 33"), + + + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x00", "pinsrd xmm1, eax, 0"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x01", "pinsrd xmm1, eax, 1"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x02", "pinsrd xmm1, eax, 2"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x03", "pinsrd xmm1, eax, 3"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x04", "pinsrd xmm1, eax, 4"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x05", "pinsrd xmm1, eax, 5"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x06", "pinsrd xmm1, eax, 6"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x07", "pinsrd xmm1, eax, 7"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x08", "pinsrd xmm1, eax, 8"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x09", "pinsrd xmm1, eax, 9"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x0a", "pinsrd xmm1, eax, 10"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x0b", "pinsrd xmm1, eax, 11"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x0c", "pinsrd xmm1, eax, 12"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x0d", "pinsrd xmm1, eax, 13"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x0e", "pinsrd xmm1, eax, 14"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x0f", "pinsrd xmm1, eax, 15"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x10", "pinsrd xmm1, eax, 16"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x11", "pinsrd xmm1, eax, 17"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x12", "pinsrd xmm1, eax, 18"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x13", "pinsrd xmm1, eax, 19"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x14", "pinsrd xmm1, eax, 20"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x15", "pinsrd xmm1, eax, 21"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x16", "pinsrd xmm1, eax, 22"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x17", "pinsrd xmm1, eax, 23"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x18", "pinsrd xmm1, eax, 24"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x19", "pinsrd xmm1, eax, 25"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x1a", "pinsrd xmm1, eax, 26"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x1b", "pinsrd xmm1, eax, 27"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x1c", "pinsrd xmm1, eax, 28"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x1d", "pinsrd xmm1, eax, 29"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x1e", "pinsrd xmm1, eax, 30"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x1f", "pinsrd xmm1, eax, 31"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x20", "pinsrd xmm1, eax, 32"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\x3a\x22\xc8\x21", "pinsrd xmm1, eax, 33"), + + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x00", "pinsrq xmm1, rax, 0"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x01", "pinsrq xmm1, rax, 1"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x02", "pinsrq xmm1, rax, 2"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x03", "pinsrq xmm1, rax, 3"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x04", "pinsrq xmm1, rax, 4"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x05", "pinsrq xmm1, rax, 5"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x06", "pinsrq xmm1, rax, 6"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x07", "pinsrq xmm1, rax, 7"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x08", "pinsrq xmm1, rax, 8"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x09", "pinsrq xmm1, rax, 9"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x0a", "pinsrq xmm1, rax, 10"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x0b", "pinsrq xmm1, rax, 11"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x0c", "pinsrq xmm1, rax, 12"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x0d", "pinsrq xmm1, rax, 13"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x0e", "pinsrq xmm1, rax, 14"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x0f", "pinsrq xmm1, rax, 15"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x10", "pinsrq xmm1, rax, 16"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x11", "pinsrq xmm1, rax, 17"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x12", "pinsrq xmm1, rax, 18"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x13", "pinsrq xmm1, rax, 19"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x14", "pinsrq xmm1, rax, 20"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x15", "pinsrq xmm1, rax, 21"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x16", "pinsrq xmm1, rax, 22"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x17", "pinsrq xmm1, rax, 23"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x18", "pinsrq xmm1, rax, 24"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x19", "pinsrq xmm1, rax, 25"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x1a", "pinsrq xmm1, rax, 26"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x1b", "pinsrq xmm1, rax, 27"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x1c", "pinsrq xmm1, rax, 28"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x1d", "pinsrq xmm1, rax, 29"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x1e", "pinsrq xmm1, rax, 30"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x1f", "pinsrq xmm1, rax, 31"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x20", "pinsrq xmm1, rax, 32"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x48\x0f\x3a\x22\xc8\x21", "pinsrq xmm1, rax, 33"), + + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x00", "pinsrw xmm1, eax, 0"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x01", "pinsrw xmm1, eax, 1"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x02", "pinsrw xmm1, eax, 2"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x03", "pinsrw xmm1, eax, 3"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x04", "pinsrw xmm1, eax, 4"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x05", "pinsrw xmm1, eax, 5"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x06", "pinsrw xmm1, eax, 6"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x07", "pinsrw xmm1, eax, 7"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x08", "pinsrw xmm1, eax, 8"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x09", "pinsrw xmm1, eax, 9"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x0a", "pinsrw xmm1, eax, 10"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x0b", "pinsrw xmm1, eax, 11"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x0c", "pinsrw xmm1, eax, 12"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x0d", "pinsrw xmm1, eax, 13"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x0e", "pinsrw xmm1, eax, 14"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x0f", "pinsrw xmm1, eax, 15"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x10", "pinsrw xmm1, eax, 16"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x11", "pinsrw xmm1, eax, 17"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x12", "pinsrw xmm1, eax, 18"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x13", "pinsrw xmm1, eax, 19"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x14", "pinsrw xmm1, eax, 20"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x15", "pinsrw xmm1, eax, 21"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x16", "pinsrw xmm1, eax, 22"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x17", "pinsrw xmm1, eax, 23"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x18", "pinsrw xmm1, eax, 24"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x19", "pinsrw xmm1, eax, 25"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x1a", "pinsrw xmm1, eax, 26"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x1b", "pinsrw xmm1, eax, 27"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x1c", "pinsrw xmm1, eax, 28"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x1d", "pinsrw xmm1, eax, 29"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x1e", "pinsrw xmm1, eax, 30"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x1f", "pinsrw xmm1, eax, 31"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x20", "pinsrw xmm1, eax, 32"), + # (None, [], b"\x0f\x28\x0b", "movaps xmm1, [rbx]"), + # (None, [], b"\x66\x0f\xc4\xc8\x21", "pinsrw xmm1, eax, 33"), + + # ({'eflags':2}, [], b"\x90", "nop"), + # (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), + # (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), + # (None, [], b"\xf3\x48\x0f\xbd\xd8", "lzcnt rbx, rax"), + # (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), + # (None, [], b"\x48\xc7\xc3\x01\x00\x00\x00", "mov rbx, 0x1"), + # (None, [], b"\xf3\x48\x0f\xbd\xd8", "lzcnt rbx, rax"), + # (None, [], b"\x48\xc7\xc0\x01\x00\x00\x00", "mov rax, 0x1"), + # (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), + # (None, [], b"\xf3\x48\x0f\xbd\xd8", "lzcnt rbx, rax"), + # (None, [], b"\x48\xc7\xc0\x02\x00\x00\x00", "mov rax, 0x2"), + # (None, [], b"\xf3\x48\x0f\xbd\xd8", "lzcnt rbx, rax"), + # (None, [], b"\x48\xc7\xc0\x40\x00\x00\x00", "mov rax, 0x40"), + # (None, [], b"\xf3\x48\x0f\xbd\xd8", "lzcnt rbx, rax"), + # (None, [], b"\x48\xc7\xc0\x00\x10\x00\x00", "mov rax, 0x1000"), + # (None, [], b"\xf3\x48\x0f\xbd\xd8", "lzcnt rbx, rax"), + # (None, [], b"\x66\xf3\x0f\xbd\xd8", "lzcnt bx, ax"), + # (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), + # (None, [], b"\xf3\x48\x0f\xbd\xd8", "lzcnt rbx, rax"), + # (None, [], b"\x48\xb8\x00\x00\x00\x00\x00\x00\x00\x80", "movabs rax, 0x8000000000000000"), + # (None, [], b"\xf3\x48\x0f\xbd\xd8", "lzcnt rbx, rax"), + # (None, [], b"\x48\xc7\xc0\xff\xff\xff\xff", "mov rax, 0xffffffffffffffff"), + # (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), + # (None, [], b"\xf3\x48\x0f\xbd\xd8", "lzcnt rbx, rax"), + + # (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), + # (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), + # (None, [], b"\xf3\x0f\xbd\xd8", "lzcnt ebx, eax"), + # (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), + # (None, [], b"\x48\xc7\xc3\x01\x00\x00\x00", "mov rbx, 0x1"), + # (None, [], b"\xf3\x0f\xbd\xd8", "lzcnt ebx, eax"), + # (None, [], b"\x48\xc7\xc0\x01\x00\x00\x00", "mov rax, 0x1"), + # (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), + # (None, [], b"\xf3\x0f\xbd\xd8", "lzcnt ebx, eax"), + # (None, [], b"\x48\xc7\xc0\x02\x00\x00\x00", "mov rax, 0x2"), + # (None, [], b"\xf3\x0f\xbd\xd8", "lzcnt ebx, eax"), + # (None, [], b"\x48\xc7\xc0\x40\x00\x00\x00", "mov rax, 0x40"), + # (None, [], b"\xf3\x0f\xbd\xd8", "lzcnt ebx, eax"), + # (None, [], b"\x48\xc7\xc0\x00\x10\x00\x00", "mov rax, 0x1000"), + # (None, [], b"\xf3\x0f\xbd\xd8", "lzcnt ebx, eax"), + # (None, [], b"\x66\xf3\x0f\xbd\xd8", "lzcnt bx, ax"), + # (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), + # (None, [], b"\xf3\x0f\xbd\xd8", "lzcnt ebx, eax"), + # (None, [], b"\x48\xb8\x00\x00\x00\x00\x00\x00\x00\x80", "movabs rax, 0x8000000000000000"), + # (None, [], b"\xf3\x0f\xbd\xd8", "lzcnt ebx, eax"), + # (None, [], b"\x48\xc7\xc0\xff\xff\xff\xff", "mov rax, 0xffffffffffffffff"), + # (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), + # (None, [], b"\xf3\x0f\xbd\xd8", "lzcnt ebx, eax"), + + # (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), + # (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), + # (None, [], b"\xf3\x48\x0f\xbc\xd8", "tzcnt rbx, rax"), + # (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), + # (None, [], b"\x48\xc7\xc3\x01\x00\x00\x00", "mov rbx, 0x1"), + # (None, [], b"\xf3\x48\x0f\xbc\xd8", "tzcnt rbx, rax"), + # (None, [], b"\x48\xc7\xc0\x01\x00\x00\x00", "mov rax, 0x1"), + # (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), + # (None, [], b"\xf3\x48\x0f\xbc\xd8", "tzcnt rbx, rax"), + # (None, [], b"\x48\xc7\xc0\x02\x00\x00\x00", "mov rax, 0x2"), + # (None, [], b"\xf3\x48\x0f\xbc\xd8", "tzcnt rbx, rax"), + # (None, [], b"\x48\xc7\xc0\x40\x00\x00\x00", "mov rax, 0x40"), + # (None, [], b"\xf3\x48\x0f\xbc\xd8", "tzcnt rbx, rax"), + # (None, [], b"\x48\xc7\xc0\x00\x10\x00\x00", "mov rax, 0x1000"), + # (None, [], b"\x66\xf3\x0f\xbc\xd8", "tzcnt bx, ax"), + # (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), + # (None, [], b"\xf3\x48\x0f\xbc\xd8", "tzcnt rbx, rax"), + # (None, [], b"\x48\xb8\x00\x00\x00\x00\x00\x00\x00\x80", "movabs rax, 0x8000000000000000"), + # (None, [], b"\xf3\x48\x0f\xbc\xd8", "tzcnt rbx, rax"), + # (None, [], b"\x48\xc7\xc0\xff\xff\xff\xff", "mov rax, 0xffffffffffffffff"), + # (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), + # (None, [], b"\xf3\x48\x0f\xbc\xd8", "tzcnt rbx, rax"), + + # (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), + # (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), + # (None, [], b"\xf3\x0f\xbc\xd8", "tzcnt ebx, eax"), + # (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), + # (None, [], b"\x48\xc7\xc3\x01\x00\x00\x00", "mov rbx, 0x1"), + # (None, [], b"\xf3\x0f\xbc\xd8", "tzcnt ebx, eax"), + # (None, [], b"\x48\xc7\xc0\x01\x00\x00\x00", "mov rax, 0x1"), + # (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), + # (None, [], b"\xf3\x0f\xbc\xd8", "tzcnt ebx, eax"), + # (None, [], b"\x48\xc7\xc0\x02\x00\x00\x00", "mov rax, 0x2"), + # (None, [], b"\xf3\x0f\xbc\xd8", "tzcnt ebx, eax"), + # (None, [], b"\x48\xc7\xc0\x40\x00\x00\x00", "mov rax, 0x40"), + # (None, [], b"\xf3\x0f\xbc\xd8", "tzcnt ebx, eax"), + # (None, [], b"\x48\xc7\xc0\x00\x10\x00\x00", "mov rax, 0x1000"), + # (None, [], b"\x66\xf3\x0f\xbc\xd8", "tzcnt bx, ax"), + # (None, [], b"\x48\xc7\xc0\x00\x00\x00\x00", "mov rax, 0x0"), + # (None, [], b"\xf3\x0f\xbc\xd8", "tzcnt ebx, eax"), + # (None, [], b"\x48\xb8\x00\x00\x00\x00\x00\x00\x00\x80", "movabs rax, 0x8000000000000000"), + # (None, [], b"\xf3\x0f\xbc\xd8", "tzcnt ebx, eax"), + # (None, [], b"\x48\xc7\xc0\xff\xff\xff\xff", "mov rax, 0xffffffffffffffff"), + # (None, [], b"\x48\xc7\xc3\x00\x00\x00\x00", "mov rbx, 0x0"), + # (None, [], b"\xf3\x0f\xbc\xd8", "tzcnt ebx, eax"), + + # (None, [], b"\x48\xB8\x11\x11\x11\x11\x11\x11\x11\x11", "movabs rax, 1111111111111111"), + # (None, [], b"\x66\x48\x0F\x6E\xC0", "movq xmm0, rax"), + # (None, [], b"\x66\x48\x0F\x3A\x22\xC0\x01", "pinsrq xmm0, rax, 1"), + # (None, [], b"\x48\xB8\x22\x22\x22\x22\x22\x22\x22\x22", "movabs rax, 2222222222222222"), + # (None, [], b"\x66\x48\x0F\x6E\xC8", "movq xmm1, rax"), + # (None, [], b"\x66\x48\x0F\x3A\x22\xC8\x01", "pinsrq xmm1, rax, 1"), + # (None, [], b"\xC5\xF9\xEB\xC1", "vpor xmm0, xmm0, xmm1"), (None, [], b"\xbb\x10\x00\x30\x00", "mov ebx, 0x300010"), (None, [], b"\xb8\x20\x00\x30\x00", "mov eax, 0x300020"), @@ -1972,15 +1978,15 @@ def emu_with_unicorn(opcode, istate): mu.reg_write(UC_X86_REG_XMM13, istate['xmm13']) mu.reg_write(UC_X86_REG_XMM14, istate['xmm14']) mu.reg_write(UC_X86_REG_XMM15, istate['xmm15']) - mu.reg_write(UC_X86_REG_MM0, istate['mm0']) - mu.reg_write(UC_X86_REG_MM1, istate['mm1']) - mu.reg_write(UC_X86_REG_MM2, istate['mm2']) - mu.reg_write(UC_X86_REG_MM3, istate['mm3']) - mu.reg_write(UC_X86_REG_MM4, istate['mm4']) - mu.reg_write(UC_X86_REG_MM5, istate['mm5']) - mu.reg_write(UC_X86_REG_MM6, istate['mm6']) - mu.reg_write(UC_X86_REG_MM7, istate['mm7']) - mu.reg_write(UC_X86_REG_MXCSR, istate['mxcsr']) + # mu.reg_write(UC_X86_REG_MM0, istate['mm0']) # Unsupported by Unicorn + # mu.reg_write(UC_X86_REG_MM1, istate['mm1']) # Unsupported by Unicorn + # mu.reg_write(UC_X86_REG_MM2, istate['mm2']) # Unsupported by Unicorn + # mu.reg_write(UC_X86_REG_MM3, istate['mm3']) # Unsupported by Unicorn + # mu.reg_write(UC_X86_REG_MM4, istate['mm4']) # Unsupported by Unicorn + # mu.reg_write(UC_X86_REG_MM5, istate['mm5']) # Unsupported by Unicorn + # mu.reg_write(UC_X86_REG_MM6, istate['mm6']) # Unsupported by Unicorn + # mu.reg_write(UC_X86_REG_MM7, istate['mm7']) # Unsupported by Unicorn + mu.reg_write(UC_X86_REG_MXCSR, istate['mxcsr']) # Unsupported by Unicorn mu.reg_write(UC_X86_REG_FPCW, istate['fcw']) mu.reg_write(UC_X86_REG_FPSW, istate['fsw']) mu.reg_write(UC_X86_REG_FPTAG, istate['ftw']) @@ -2025,14 +2031,14 @@ def emu_with_unicorn(opcode, istate): "xmm13": mu.reg_read(UC_X86_REG_XMM13), "xmm14": mu.reg_read(UC_X86_REG_XMM14), "xmm15": mu.reg_read(UC_X86_REG_XMM15), - "mm0": mu.reg_read(UC_X86_REG_MM0), - "mm1": mu.reg_read(UC_X86_REG_MM1), - "mm2": mu.reg_read(UC_X86_REG_MM2), - "mm3": mu.reg_read(UC_X86_REG_MM3), - "mm4": mu.reg_read(UC_X86_REG_MM4), - "mm5": mu.reg_read(UC_X86_REG_MM5), - "mm6": mu.reg_read(UC_X86_REG_MM6), - "mm7": mu.reg_read(UC_X86_REG_MM7), + # "mm0": mu.reg_read(UC_X86_REG_MM0), # Unsupported by Unicorn + # "mm1": mu.reg_read(UC_X86_REG_MM1), # Unsupported by Unicorn + # "mm2": mu.reg_read(UC_X86_REG_MM2), # Unsupported by Unicorn + # "mm3": mu.reg_read(UC_X86_REG_MM3), # Unsupported by Unicorn + # "mm4": mu.reg_read(UC_X86_REG_MM4), # Unsupported by Unicorn + # "mm5": mu.reg_read(UC_X86_REG_MM5), # Unsupported by Unicorn + # "mm6": mu.reg_read(UC_X86_REG_MM6), # Unsupported by Unicorn + # "mm7": mu.reg_read(UC_X86_REG_MM7), # Unsupported by Unicorn "mxcsr": mu.reg_read(UC_X86_REG_MXCSR), "mxcsr_mask": 0xFFBF, # Unsupported by Unicorn "fcw": mu.reg_read(UC_X86_REG_FPCW), @@ -2085,14 +2091,14 @@ def emu_with_triton(opcode, istate): ctx.setConcreteRegisterValue(ctx.registers.xmm13, istate['xmm13']) ctx.setConcreteRegisterValue(ctx.registers.xmm14, istate['xmm14']) ctx.setConcreteRegisterValue(ctx.registers.xmm15, istate['xmm15']) - ctx.setConcreteRegisterValue(ctx.registers.mm0, istate['mm0']) - ctx.setConcreteRegisterValue(ctx.registers.mm1, istate['mm1']) - ctx.setConcreteRegisterValue(ctx.registers.mm2, istate['mm2']) - ctx.setConcreteRegisterValue(ctx.registers.mm3, istate['mm3']) - ctx.setConcreteRegisterValue(ctx.registers.mm4, istate['mm4']) - ctx.setConcreteRegisterValue(ctx.registers.mm5, istate['mm5']) - ctx.setConcreteRegisterValue(ctx.registers.mm6, istate['mm6']) - ctx.setConcreteRegisterValue(ctx.registers.mm7, istate['mm7']) + # ctx.setConcreteRegisterValue(ctx.registers.mm0, istate['mm0']) # Unsupported by Unicorn + # ctx.setConcreteRegisterValue(ctx.registers.mm1, istate['mm1']) # Unsupported by Unicorn + # ctx.setConcreteRegisterValue(ctx.registers.mm2, istate['mm2']) # Unsupported by Unicorn + # ctx.setConcreteRegisterValue(ctx.registers.mm3, istate['mm3']) # Unsupported by Unicorn + # ctx.setConcreteRegisterValue(ctx.registers.mm4, istate['mm4']) # Unsupported by Unicorn + # ctx.setConcreteRegisterValue(ctx.registers.mm5, istate['mm5']) # Unsupported by Unicorn + # ctx.setConcreteRegisterValue(ctx.registers.mm6, istate['mm6']) # Unsupported by Unicorn + # ctx.setConcreteRegisterValue(ctx.registers.mm7, istate['mm7']) # Unsupported by Unicorn ctx.setConcreteRegisterValue(ctx.registers.mxcsr, istate['mxcsr']) ctx.setConcreteRegisterValue(ctx.registers.mxcsr_mask, istate['mxcsr_mask']) ctx.setConcreteRegisterValue(ctx.registers.fcw, istate['fcw']) @@ -2141,14 +2147,14 @@ def emu_with_triton(opcode, istate): "xmm13": ctx.getSymbolicRegisterValue(ctx.registers.xmm13), "xmm14": ctx.getSymbolicRegisterValue(ctx.registers.xmm14), "xmm15": ctx.getSymbolicRegisterValue(ctx.registers.xmm15), - "mm0": ctx.getSymbolicRegisterValue(ctx.registers.mm0), - "mm1": ctx.getSymbolicRegisterValue(ctx.registers.mm1), - "mm2": ctx.getSymbolicRegisterValue(ctx.registers.mm2), - "mm3": ctx.getSymbolicRegisterValue(ctx.registers.mm3), - "mm4": ctx.getSymbolicRegisterValue(ctx.registers.mm4), - "mm5": ctx.getSymbolicRegisterValue(ctx.registers.mm5), - "mm6": ctx.getSymbolicRegisterValue(ctx.registers.mm6), - "mm7": ctx.getSymbolicRegisterValue(ctx.registers.mm7), + # "mm0": ctx.getSymbolicRegisterValue(ctx.registers.mm0), # Unsupported by Unicorn + # "mm1": ctx.getSymbolicRegisterValue(ctx.registers.mm1), # Unsupported by Unicorn + # "mm2": ctx.getSymbolicRegisterValue(ctx.registers.mm2), # Unsupported by Unicorn + # "mm3": ctx.getSymbolicRegisterValue(ctx.registers.mm3), # Unsupported by Unicorn + # "mm4": ctx.getSymbolicRegisterValue(ctx.registers.mm4), # Unsupported by Unicorn + # "mm5": ctx.getSymbolicRegisterValue(ctx.registers.mm5), # Unsupported by Unicorn + # "mm6": ctx.getSymbolicRegisterValue(ctx.registers.mm6), # Unsupported by Unicorn + # "mm7": ctx.getSymbolicRegisterValue(ctx.registers.mm7), # Unsupported by Unicorn "mxcsr": ctx.getSymbolicRegisterValue(ctx.registers.mxcsr), "mxcsr_mask": ctx.getSymbolicRegisterValue(ctx.registers.mxcsr_mask), "fcw": ctx.getSymbolicRegisterValue(ctx.registers.fcw), @@ -2221,14 +2227,14 @@ def dump_state(state): print("xmm14: 0x%X" % state['xmm14']) print("xmm15: 0x%X" % state['xmm15']) # MMX registers - print("mm0: 0x%X" % state['mm0']) - print("mm1: 0x%X" % state['mm1']) - print("mm2: 0x%X" % state['mm2']) - print("mm3: 0x%X" % state['mm3']) - print("mm4: 0x%X" % state['mm4']) - print("mm5: 0x%X" % state['mm5']) - print("mm6: 0x%X" % state['mm6']) - print("mm7: 0x%X" % state['mm7']) + # print("mm0: 0x%X" % state['mm0']) # Unsupported by Unicorn + # print("mm1: 0x%X" % state['mm1']) # Unsupported by Unicorn + # print("mm2: 0x%X" % state['mm2']) # Unsupported by Unicorn + # print("mm3: 0x%X" % state['mm3']) # Unsupported by Unicorn + # print("mm4: 0x%X" % state['mm4']) # Unsupported by Unicorn + # print("mm5: 0x%X" % state['mm5']) # Unsupported by Unicorn + # print("mm6: 0x%X" % state['mm6']) # Unsupported by Unicorn + # print("mm7: 0x%X" % state['mm7']) # Unsupported by Unicorn # SSE and x87 FPU registers print("mxcsr: 0x%X" % state['mxcsr']) print("mxcsr_mask: 0x%X" % state['mxcsr_mask']) @@ -2276,14 +2282,14 @@ def dump_state(state): "xmm13": 0x0, "xmm14": 0x0, "xmm15": 0x0, - "mm0": 0x0, # Unsupported by Unicorn - "mm1": 0x0, # Unsupported by Unicorn - "mm2": 0x0, # Unsupported by Unicorn - "mm3": 0x0, # Unsupported by Unicorn - "mm4": 0x0, # Unsupported by Unicorn - "mm5": 0x0, # Unsupported by Unicorn - "mm6": 0x0, # Unsupported by Unicorn - "mm7": 0x0, # Unsupported by Unicorn + # "mm0": 0x0, # Unsupported by Unicorn + # "mm1": 0x0, # Unsupported by Unicorn + # "mm2": 0x0, # Unsupported by Unicorn + # "mm3": 0x0, # Unsupported by Unicorn + # "mm4": 0x0, # Unsupported by Unicorn + # "mm5": 0x0, # Unsupported by Unicorn + # "mm6": 0x0, # Unsupported by Unicorn + # "mm7": 0x0, # Unsupported by Unicorn "mxcsr": 0x1F80, # Default value at program start "mxcsr_mask": 0xFFBF, # Default value at program start "fcw": 0x027F, # Default value at program start