github.com/bananabytelabs/wazero@v0.0.0-20240105073314-54b22a776da8/internal/asm/amd64/impl_6_test.go (about)

     1  package amd64
     2  
     3  import (
     4  	"fmt"
     5  	"math"
     6  	"testing"
     7  
     8  	"github.com/bananabytelabs/wazero/internal/asm"
     9  	"github.com/bananabytelabs/wazero/internal/testing/require"
    10  )
    11  
    12  func TestAssemblerImpl_Assemble_NOPPadding(t *testing.T) {
    13  	t.Run("non relative jumps", func(t *testing.T) {
    14  		tests := []struct {
    15  			name     string
    16  			setupFn  func(assembler Assembler)
    17  			expected []byte
    18  		}{
    19  			{
    20  				name: "RET",
    21  				setupFn: func(assembler Assembler) {
    22  					for i := 0; i < 128; i++ {
    23  						assembler.CompileStandAlone(RET)
    24  					}
    25  				},
    26  				expected: []byte{
    27  					0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3,
    28  					0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x90,
    29  					0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3,
    30  					0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x90, 0xc3, 0xc3,
    31  					0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3,
    32  					0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x90, 0xc3, 0xc3, 0xc3, 0xc3,
    33  					0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3,
    34  					0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x90, 0xc3, 0xc3, 0xc3, 0xc3,
    35  				},
    36  			},
    37  			{
    38  				name: "JMP to register",
    39  				setupFn: func(assembler Assembler) {
    40  					for i := 0; i < 128; i++ {
    41  						assembler.CompileJumpToRegister(JMP, RegAX)
    42  					}
    43  				},
    44  				expected: []byte{
    45  					0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff,
    46  					0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0,
    47  					0x66, 0x90, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff,
    48  					0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0,
    49  					0xff, 0xe0, 0x66, 0x90, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff,
    50  					0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0,
    51  					0xff, 0xe0, 0xff, 0xe0, 0x66, 0x90, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff,
    52  					0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0,
    53  					0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0x66, 0x90, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff,
    54  					0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0,
    55  					0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0x66, 0x90, 0xff, 0xe0, 0xff, 0xe0, 0xff,
    56  					0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0,
    57  					0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0x66, 0x90, 0xff, 0xe0, 0xff,
    58  					0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0,
    59  					0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0x66, 0x90, 0xff,
    60  					0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0,
    61  					0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0x66,
    62  					0x90, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0, 0xff, 0xe0,
    63  					0xff, 0xe0,
    64  				},
    65  			},
    66  			{
    67  				name: "JMP to memory",
    68  				setupFn: func(assembler Assembler) {
    69  					for i := 0; i < 128; i++ {
    70  						assembler.CompileJumpToMemory(JMP, RegAX, 10)
    71  					}
    72  				},
    73  				expected: []byte{
    74  					0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa,
    75  					0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa,
    76  					0x66, 0x90, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff,
    77  					0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa,
    78  					0xff, 0x60, 0xa, 0x66, 0x90, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff,
    79  					0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff,
    80  					0x60, 0xa, 0xff, 0x60, 0xa, 0x66, 0x90, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60,
    81  					0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60,
    82  					0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0x66, 0x90, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa,
    83  					0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa,
    84  					0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0x66, 0x90, 0xff, 0x60, 0xa, 0xff,
    85  					0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff,
    86  					0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0x66, 0x90, 0xff, 0x60,
    87  					0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60,
    88  					0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0x66, 0x90,
    89  					0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa,
    90  					0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa,
    91  					0x66, 0x90, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff,
    92  					0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff,
    93  					0x60, 0xa, 0x66, 0x90, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60,
    94  					0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60,
    95  					0xa, 0xff, 0x60, 0xa, 0x66, 0x90, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa,
    96  					0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa,
    97  					0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0x66, 0x90, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff,
    98  					0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff,
    99  					0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0x66, 0x90, 0xff, 0x60, 0xa, 0xff, 0x60,
   100  					0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60, 0xa, 0xff, 0x60,
   101  					0xa, 0xff, 0x60, 0xa,
   102  				},
   103  			},
   104  			{
   105  				name: "JMP to memory large offset",
   106  				setupFn: func(assembler Assembler) {
   107  					for i := 0; i < 128; i++ {
   108  						assembler.CompileJumpToMemory(JMP, RegAX, math.MaxInt32)
   109  					}
   110  				},
   111  				expected: []byte{
   112  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   113  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   114  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   115  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   116  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   117  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   118  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   119  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   120  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   121  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   122  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   123  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   124  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   125  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   126  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   127  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   128  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   129  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   130  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   131  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   132  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   133  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   134  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   135  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   136  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   137  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   138  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   139  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   140  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   141  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   142  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   143  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   144  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   145  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   146  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   147  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   148  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   149  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   150  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   151  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   152  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   153  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   154  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   155  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   156  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   157  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   158  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   159  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   160  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   161  					0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0x66, 0x90,
   162  					0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xa0, 0xff, 0xff,
   163  					0xff, 0x7f,
   164  				},
   165  			},
   166  		}
   167  
   168  		for _, tt := range tests {
   169  			tc := tt
   170  			t.Run(tc.name, func(t *testing.T) {
   171  				code := asm.CodeSegment{}
   172  				defer func() { require.NoError(t, code.Unmap()) }()
   173  
   174  				a := NewAssembler()
   175  				tc.setupFn(a)
   176  
   177  				buf := code.NextCodeSection()
   178  				err := a.Assemble(buf)
   179  				require.NoError(t, err)
   180  
   181  				actual := buf.Bytes()
   182  				require.Equal(t, tc.expected, actual)
   183  			})
   184  		}
   185  	})
   186  
   187  	t.Run("relative jumps", func(t *testing.T) {
   188  		tests := []struct {
   189  			jmpInst  asm.Instruction
   190  			backward bool
   191  			exp      []byte
   192  		}{
   193  			{
   194  				backward: false, jmpInst: JMP, exp: []byte{
   195  					0xc3, 0xe9, 0xe4, 0x1, 0x0, 0x0, 0xe9, 0xdf, 0x1, 0x0, 0x0, 0xe9, 0xda, 0x1, 0x0, 0x0, 0xe9, 0xd5,
   196  					0x1, 0x0, 0x0, 0xe9, 0xd0, 0x1, 0x0, 0x0, 0xe9, 0xcb, 0x1, 0x0, 0x0, 0x90, 0xe9, 0xc5, 0x1, 0x0,
   197  					0x0, 0xe9, 0xc0, 0x1, 0x0, 0x0, 0xe9, 0xbb, 0x1, 0x0, 0x0, 0xe9, 0xb6, 0x1, 0x0, 0x0, 0xe9, 0xb1,
   198  					0x1, 0x0, 0x0, 0xe9, 0xac, 0x1, 0x0, 0x0, 0x66, 0x90, 0xe9, 0xa5, 0x1, 0x0, 0x0, 0xe9, 0xa0, 0x1,
   199  					0x0, 0x0, 0xe9, 0x9b, 0x1, 0x0, 0x0, 0xe9, 0x96, 0x1, 0x0, 0x0, 0xe9, 0x91, 0x1, 0x0, 0x0, 0xe9,
   200  					0x8c, 0x1, 0x0, 0x0, 0x66, 0x90, 0xe9, 0x85, 0x1, 0x0, 0x0, 0xe9, 0x80, 0x1, 0x0, 0x0, 0xe9, 0x7b,
   201  					0x1, 0x0, 0x0, 0xe9, 0x76, 0x1, 0x0, 0x0, 0xe9, 0x71, 0x1, 0x0, 0x0, 0xe9, 0x6c, 0x1, 0x0, 0x0,
   202  					0x66, 0x90, 0xe9, 0x65, 0x1, 0x0, 0x0, 0xe9, 0x60, 0x1, 0x0, 0x0, 0xe9, 0x5b, 0x1, 0x0, 0x0, 0xe9,
   203  					0x56, 0x1, 0x0, 0x0, 0xe9, 0x51, 0x1, 0x0, 0x0, 0xe9, 0x4c, 0x1, 0x0, 0x0, 0x66, 0x90, 0xe9, 0x45,
   204  					0x1, 0x0, 0x0, 0xe9, 0x40, 0x1, 0x0, 0x0, 0xe9, 0x3b, 0x1, 0x0, 0x0, 0xe9, 0x36, 0x1, 0x0, 0x0, 0xe9,
   205  					0x31, 0x1, 0x0, 0x0, 0xe9, 0x2c, 0x1, 0x0, 0x0, 0x66, 0x90, 0xe9, 0x25, 0x1, 0x0, 0x0, 0xe9, 0x20, 0x1,
   206  					0x0, 0x0, 0xe9, 0x1b, 0x1, 0x0, 0x0, 0xe9, 0x16, 0x1, 0x0, 0x0, 0xe9, 0x11, 0x1, 0x0, 0x0, 0xe9, 0xc,
   207  					0x1, 0x0, 0x0, 0x66, 0x90, 0xe9, 0x5, 0x1, 0x0, 0x0, 0xe9, 0x0, 0x1, 0x0, 0x0, 0xe9, 0xfb, 0x0, 0x0,
   208  					0x0, 0xe9, 0xf6, 0x0, 0x0, 0x0, 0xe9, 0xf1, 0x0, 0x0, 0x0, 0xe9, 0xec, 0x0, 0x0, 0x0, 0x66, 0x90, 0xe9,
   209  					0xe5, 0x0, 0x0, 0x0, 0xe9, 0xe0, 0x0, 0x0, 0x0, 0xe9, 0xdb, 0x0, 0x0, 0x0, 0xe9, 0xd6, 0x0, 0x0, 0x0,
   210  					0xe9, 0xd1, 0x0, 0x0, 0x0, 0xe9, 0xcc, 0x0, 0x0, 0x0, 0x66, 0x90, 0xe9, 0xc5, 0x0, 0x0, 0x0, 0xe9, 0xc0,
   211  					0x0, 0x0, 0x0, 0xe9, 0xbb, 0x0, 0x0, 0x0, 0xe9, 0xb6, 0x0, 0x0, 0x0, 0xe9, 0xb1, 0x0, 0x0, 0x0, 0xe9,
   212  					0xac, 0x0, 0x0, 0x0, 0x66, 0x90, 0xe9, 0xa5, 0x0, 0x0, 0x0, 0xe9, 0xa0, 0x0, 0x0, 0x0, 0xe9, 0x9b, 0x0,
   213  					0x0, 0x0, 0xe9, 0x96, 0x0, 0x0, 0x0, 0xe9, 0x91, 0x0, 0x0, 0x0, 0xe9, 0x8c, 0x0, 0x0, 0x0, 0x66, 0x90,
   214  					0xe9, 0x85, 0x0, 0x0, 0x0, 0xe9, 0x80, 0x0, 0x0, 0x0, 0xeb, 0x7e, 0xeb, 0x7c, 0xeb, 0x7a, 0xeb, 0x78, 0xeb,
   215  					0x76, 0xeb, 0x74, 0xeb, 0x72, 0xeb, 0x70, 0xeb, 0x6e, 0xeb, 0x6c, 0x66, 0x90, 0xeb, 0x68, 0xeb, 0x66, 0xeb, 0x64,
   216  					0xeb, 0x62, 0xeb, 0x60, 0xeb, 0x5e, 0xeb, 0x5c, 0xeb, 0x5a, 0xeb, 0x58, 0xeb, 0x56, 0xeb, 0x54, 0xeb, 0x52, 0xeb,
   217  					0x50, 0xeb, 0x4e, 0xeb, 0x4c, 0x66, 0x90, 0xeb, 0x48, 0xeb, 0x46, 0xeb, 0x44, 0xeb, 0x42, 0xeb, 0x40, 0xeb, 0x3e,
   218  					0xeb, 0x3c, 0xeb, 0x3a, 0xeb, 0x38, 0xeb, 0x36, 0xeb, 0x34, 0xeb, 0x32, 0xeb, 0x30, 0xeb, 0x2e, 0xeb, 0x2c,
   219  					0x66, 0x90, 0xeb, 0x28, 0xeb, 0x26, 0xeb, 0x24, 0xeb, 0x22, 0xeb, 0x20, 0xeb, 0x1e, 0xeb, 0x1c, 0xeb,
   220  					0x1a, 0xeb, 0x18, 0xeb, 0x16, 0xeb, 0x14, 0xeb, 0x12, 0xeb, 0x10, 0xeb, 0xe, 0xeb, 0xc, 0x66, 0x90,
   221  					0xeb, 0x8, 0xeb, 0x6, 0xeb, 0x4, 0xeb, 0x2, 0xeb, 0x0, 0xc3,
   222  				},
   223  			},
   224  			{
   225  				backward: false, jmpInst: JCC, exp: []byte{
   226  					0xc3, 0xf, 0x83, 0x2b, 0x2, 0x0, 0x0, 0xf, 0x83, 0x25, 0x2, 0x0, 0x0, 0xf, 0x83, 0x1f, 0x2, 0x0,
   227  					0x0, 0xf, 0x83, 0x19, 0x2, 0x0, 0x0, 0xf, 0x83, 0x13, 0x2, 0x0, 0x0, 0x90, 0xf, 0x83, 0xc, 0x2,
   228  					0x0, 0x0, 0xf, 0x83, 0x6, 0x2, 0x0, 0x0, 0xf, 0x83, 0x0, 0x2, 0x0, 0x0, 0xf, 0x83, 0xfa, 0x1,
   229  					0x0, 0x0, 0xf, 0x83, 0xf4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x83, 0xec, 0x1, 0x0, 0x0, 0xf, 0x83,
   230  					0xe6, 0x1, 0x0, 0x0, 0xf, 0x83, 0xe0, 0x1, 0x0, 0x0, 0xf, 0x83, 0xda, 0x1, 0x0, 0x0, 0xf, 0x83,
   231  					0xd4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x83, 0xcc, 0x1, 0x0, 0x0, 0xf, 0x83, 0xc6, 0x1, 0x0, 0x0,
   232  					0xf, 0x83, 0xc0, 0x1, 0x0, 0x0, 0xf, 0x83, 0xba, 0x1, 0x0, 0x0, 0xf, 0x83, 0xb4, 0x1, 0x0, 0x0,
   233  					0x66, 0x90, 0xf, 0x83, 0xac, 0x1, 0x0, 0x0, 0xf, 0x83, 0xa6, 0x1, 0x0, 0x0, 0xf, 0x83, 0xa0, 0x1,
   234  					0x0, 0x0, 0xf, 0x83, 0x9a, 0x1, 0x0, 0x0, 0xf, 0x83, 0x94, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x83,
   235  					0x8c, 0x1, 0x0, 0x0, 0xf, 0x83, 0x86, 0x1, 0x0, 0x0, 0xf, 0x83, 0x80, 0x1, 0x0, 0x0, 0xf, 0x83, 0x7a,
   236  					0x1, 0x0, 0x0, 0xf, 0x83, 0x74, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x83, 0x6c, 0x1, 0x0, 0x0, 0xf, 0x83,
   237  					0x66, 0x1, 0x0, 0x0, 0xf, 0x83, 0x60, 0x1, 0x0, 0x0, 0xf, 0x83, 0x5a, 0x1, 0x0, 0x0, 0xf, 0x83, 0x54,
   238  					0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x83, 0x4c, 0x1, 0x0, 0x0, 0xf, 0x83, 0x46, 0x1, 0x0, 0x0, 0xf, 0x83,
   239  					0x40, 0x1, 0x0, 0x0, 0xf, 0x83, 0x3a, 0x1, 0x0, 0x0, 0xf, 0x83, 0x34, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf,
   240  					0x83, 0x2c, 0x1, 0x0, 0x0, 0xf, 0x83, 0x26, 0x1, 0x0, 0x0, 0xf, 0x83, 0x20, 0x1, 0x0, 0x0, 0xf, 0x83,
   241  					0x1a, 0x1, 0x0, 0x0, 0xf, 0x83, 0x14, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x83, 0xc, 0x1, 0x0, 0x0, 0xf,
   242  					0x83, 0x6, 0x1, 0x0, 0x0, 0xf, 0x83, 0x0, 0x1, 0x0, 0x0, 0xf, 0x83, 0xfa, 0x0, 0x0, 0x0, 0xf, 0x83,
   243  					0xf4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x83, 0xec, 0x0, 0x0, 0x0, 0xf, 0x83, 0xe6, 0x0, 0x0, 0x0, 0xf,
   244  					0x83, 0xe0, 0x0, 0x0, 0x0, 0xf, 0x83, 0xda, 0x0, 0x0, 0x0, 0xf, 0x83, 0xd4, 0x0, 0x0, 0x0, 0x66, 0x90,
   245  					0xf, 0x83, 0xcc, 0x0, 0x0, 0x0, 0xf, 0x83, 0xc6, 0x0, 0x0, 0x0, 0xf, 0x83, 0xc0, 0x0, 0x0, 0x0, 0xf,
   246  					0x83, 0xba, 0x0, 0x0, 0x0, 0xf, 0x83, 0xb4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x83, 0xac, 0x0, 0x0, 0x0,
   247  					0xf, 0x83, 0xa6, 0x0, 0x0, 0x0, 0xf, 0x83, 0xa0, 0x0, 0x0, 0x0, 0xf, 0x83, 0x9a, 0x0, 0x0, 0x0, 0xf,
   248  					0x83, 0x94, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x83, 0x8c, 0x0, 0x0, 0x0, 0xf, 0x83, 0x86, 0x0, 0x0, 0x0,
   249  					0xf, 0x83, 0x80, 0x0, 0x0, 0x0, 0x73, 0x7e, 0x73, 0x7c, 0x73, 0x7a, 0x73, 0x78, 0x73, 0x76, 0x73, 0x74,
   250  					0x66, 0x90, 0x73, 0x70, 0x73, 0x6e, 0x73, 0x6c, 0x73, 0x6a, 0x73, 0x68, 0x73, 0x66, 0x73, 0x64, 0x73,
   251  					0x62, 0x73, 0x60, 0x73, 0x5e, 0x73, 0x5c, 0x73, 0x5a, 0x73, 0x58, 0x73, 0x56, 0x73, 0x54, 0x66, 0x90,
   252  					0x73, 0x50, 0x73, 0x4e, 0x73, 0x4c, 0x73, 0x4a, 0x73, 0x48, 0x73, 0x46, 0x73, 0x44, 0x73, 0x42, 0x73,
   253  					0x40, 0x73, 0x3e, 0x73, 0x3c, 0x73, 0x3a, 0x73, 0x38, 0x73, 0x36, 0x73, 0x34, 0x66, 0x90, 0x73, 0x30,
   254  					0x73, 0x2e, 0x73, 0x2c, 0x73, 0x2a, 0x73, 0x28, 0x73, 0x26, 0x73, 0x24, 0x73, 0x22, 0x73, 0x20, 0x73,
   255  					0x1e, 0x73, 0x1c, 0x73, 0x1a, 0x73, 0x18, 0x73, 0x16, 0x73, 0x14, 0x66, 0x90, 0x73, 0x10, 0x73, 0xe,
   256  					0x73, 0xc, 0x73, 0xa, 0x73, 0x8, 0x73, 0x6, 0x73, 0x4, 0x73, 0x2, 0x73, 0x0, 0xc3,
   257  				},
   258  			},
   259  			{
   260  				backward: false, jmpInst: JCS, exp: []byte{
   261  					0xc3, 0xf, 0x82, 0x2b, 0x2, 0x0, 0x0, 0xf, 0x82, 0x25, 0x2, 0x0, 0x0, 0xf, 0x82, 0x1f, 0x2, 0x0,
   262  					0x0, 0xf, 0x82, 0x19, 0x2, 0x0, 0x0, 0xf, 0x82, 0x13, 0x2, 0x0, 0x0, 0x90, 0xf, 0x82, 0xc, 0x2,
   263  					0x0, 0x0, 0xf, 0x82, 0x6, 0x2, 0x0, 0x0, 0xf, 0x82, 0x0, 0x2, 0x0, 0x0, 0xf, 0x82, 0xfa, 0x1,
   264  					0x0, 0x0, 0xf, 0x82, 0xf4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x82, 0xec, 0x1, 0x0, 0x0, 0xf, 0x82,
   265  					0xe6, 0x1, 0x0, 0x0, 0xf, 0x82, 0xe0, 0x1, 0x0, 0x0, 0xf, 0x82, 0xda, 0x1, 0x0, 0x0, 0xf, 0x82,
   266  					0xd4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x82, 0xcc, 0x1, 0x0, 0x0, 0xf, 0x82, 0xc6, 0x1, 0x0, 0x0,
   267  					0xf, 0x82, 0xc0, 0x1, 0x0, 0x0, 0xf, 0x82, 0xba, 0x1, 0x0, 0x0, 0xf, 0x82, 0xb4, 0x1, 0x0, 0x0,
   268  					0x66, 0x90, 0xf, 0x82, 0xac, 0x1, 0x0, 0x0, 0xf, 0x82, 0xa6, 0x1, 0x0, 0x0, 0xf, 0x82, 0xa0, 0x1,
   269  					0x0, 0x0, 0xf, 0x82, 0x9a, 0x1, 0x0, 0x0, 0xf, 0x82, 0x94, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x82,
   270  					0x8c, 0x1, 0x0, 0x0, 0xf, 0x82, 0x86, 0x1, 0x0, 0x0, 0xf, 0x82, 0x80, 0x1, 0x0, 0x0, 0xf, 0x82, 0x7a,
   271  					0x1, 0x0, 0x0, 0xf, 0x82, 0x74, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x82, 0x6c, 0x1, 0x0, 0x0, 0xf, 0x82,
   272  					0x66, 0x1, 0x0, 0x0, 0xf, 0x82, 0x60, 0x1, 0x0, 0x0, 0xf, 0x82, 0x5a, 0x1, 0x0, 0x0, 0xf, 0x82, 0x54,
   273  					0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x82, 0x4c, 0x1, 0x0, 0x0, 0xf, 0x82, 0x46, 0x1, 0x0, 0x0, 0xf, 0x82,
   274  					0x40, 0x1, 0x0, 0x0, 0xf, 0x82, 0x3a, 0x1, 0x0, 0x0, 0xf, 0x82, 0x34, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf,
   275  					0x82, 0x2c, 0x1, 0x0, 0x0, 0xf, 0x82, 0x26, 0x1, 0x0, 0x0, 0xf, 0x82, 0x20, 0x1, 0x0, 0x0, 0xf, 0x82,
   276  					0x1a, 0x1, 0x0, 0x0, 0xf, 0x82, 0x14, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x82, 0xc, 0x1, 0x0, 0x0, 0xf,
   277  					0x82, 0x6, 0x1, 0x0, 0x0, 0xf, 0x82, 0x0, 0x1, 0x0, 0x0, 0xf, 0x82, 0xfa, 0x0, 0x0, 0x0, 0xf, 0x82,
   278  					0xf4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x82, 0xec, 0x0, 0x0, 0x0, 0xf, 0x82, 0xe6, 0x0, 0x0, 0x0, 0xf,
   279  					0x82, 0xe0, 0x0, 0x0, 0x0, 0xf, 0x82, 0xda, 0x0, 0x0, 0x0, 0xf, 0x82, 0xd4, 0x0, 0x0, 0x0, 0x66, 0x90,
   280  					0xf, 0x82, 0xcc, 0x0, 0x0, 0x0, 0xf, 0x82, 0xc6, 0x0, 0x0, 0x0, 0xf, 0x82, 0xc0, 0x0, 0x0, 0x0, 0xf,
   281  					0x82, 0xba, 0x0, 0x0, 0x0, 0xf, 0x82, 0xb4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x82, 0xac, 0x0, 0x0, 0x0,
   282  					0xf, 0x82, 0xa6, 0x0, 0x0, 0x0, 0xf, 0x82, 0xa0, 0x0, 0x0, 0x0, 0xf, 0x82, 0x9a, 0x0, 0x0, 0x0, 0xf,
   283  					0x82, 0x94, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x82, 0x8c, 0x0, 0x0, 0x0, 0xf, 0x82, 0x86, 0x0, 0x0, 0x0,
   284  					0xf, 0x82, 0x80, 0x0, 0x0, 0x0, 0x72, 0x7e, 0x72, 0x7c, 0x72, 0x7a, 0x72, 0x78, 0x72, 0x76, 0x72, 0x74,
   285  					0x66, 0x90, 0x72, 0x70, 0x72, 0x6e, 0x72, 0x6c, 0x72, 0x6a, 0x72, 0x68, 0x72, 0x66, 0x72, 0x64, 0x72,
   286  					0x62, 0x72, 0x60, 0x72, 0x5e, 0x72, 0x5c, 0x72, 0x5a, 0x72, 0x58, 0x72, 0x56, 0x72, 0x54, 0x66, 0x90,
   287  					0x72, 0x50, 0x72, 0x4e, 0x72, 0x4c, 0x72, 0x4a, 0x72, 0x48, 0x72, 0x46, 0x72, 0x44, 0x72, 0x42, 0x72,
   288  					0x40, 0x72, 0x3e, 0x72, 0x3c, 0x72, 0x3a, 0x72, 0x38, 0x72, 0x36, 0x72, 0x34, 0x66, 0x90, 0x72, 0x30,
   289  					0x72, 0x2e, 0x72, 0x2c, 0x72, 0x2a, 0x72, 0x28, 0x72, 0x26, 0x72, 0x24, 0x72, 0x22, 0x72, 0x20, 0x72,
   290  					0x1e, 0x72, 0x1c, 0x72, 0x1a, 0x72, 0x18, 0x72, 0x16, 0x72, 0x14, 0x66, 0x90, 0x72, 0x10, 0x72, 0xe,
   291  					0x72, 0xc, 0x72, 0xa, 0x72, 0x8, 0x72, 0x6, 0x72, 0x4, 0x72, 0x2, 0x72, 0x0, 0xc3,
   292  				},
   293  			},
   294  			{
   295  				backward: false, jmpInst: JEQ, exp: []byte{
   296  					0xc3, 0xf, 0x84, 0x2b, 0x2, 0x0, 0x0, 0xf, 0x84, 0x25, 0x2, 0x0, 0x0, 0xf, 0x84, 0x1f, 0x2, 0x0,
   297  					0x0, 0xf, 0x84, 0x19, 0x2, 0x0, 0x0, 0xf, 0x84, 0x13, 0x2, 0x0, 0x0, 0x90, 0xf, 0x84, 0xc, 0x2,
   298  					0x0, 0x0, 0xf, 0x84, 0x6, 0x2, 0x0, 0x0, 0xf, 0x84, 0x0, 0x2, 0x0, 0x0, 0xf, 0x84, 0xfa, 0x1,
   299  					0x0, 0x0, 0xf, 0x84, 0xf4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x84, 0xec, 0x1, 0x0, 0x0, 0xf, 0x84,
   300  					0xe6, 0x1, 0x0, 0x0, 0xf, 0x84, 0xe0, 0x1, 0x0, 0x0, 0xf, 0x84, 0xda, 0x1, 0x0, 0x0, 0xf, 0x84,
   301  					0xd4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x84, 0xcc, 0x1, 0x0, 0x0, 0xf, 0x84, 0xc6, 0x1, 0x0, 0x0,
   302  					0xf, 0x84, 0xc0, 0x1, 0x0, 0x0, 0xf, 0x84, 0xba, 0x1, 0x0, 0x0, 0xf, 0x84, 0xb4, 0x1, 0x0, 0x0,
   303  					0x66, 0x90, 0xf, 0x84, 0xac, 0x1, 0x0, 0x0, 0xf, 0x84, 0xa6, 0x1, 0x0, 0x0, 0xf, 0x84, 0xa0, 0x1,
   304  					0x0, 0x0, 0xf, 0x84, 0x9a, 0x1, 0x0, 0x0, 0xf, 0x84, 0x94, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x84,
   305  					0x8c, 0x1, 0x0, 0x0, 0xf, 0x84, 0x86, 0x1, 0x0, 0x0, 0xf, 0x84, 0x80, 0x1, 0x0, 0x0, 0xf, 0x84, 0x7a,
   306  					0x1, 0x0, 0x0, 0xf, 0x84, 0x74, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x84, 0x6c, 0x1, 0x0, 0x0, 0xf, 0x84,
   307  					0x66, 0x1, 0x0, 0x0, 0xf, 0x84, 0x60, 0x1, 0x0, 0x0, 0xf, 0x84, 0x5a, 0x1, 0x0, 0x0, 0xf, 0x84, 0x54,
   308  					0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x84, 0x4c, 0x1, 0x0, 0x0, 0xf, 0x84, 0x46, 0x1, 0x0, 0x0, 0xf, 0x84,
   309  					0x40, 0x1, 0x0, 0x0, 0xf, 0x84, 0x3a, 0x1, 0x0, 0x0, 0xf, 0x84, 0x34, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf,
   310  					0x84, 0x2c, 0x1, 0x0, 0x0, 0xf, 0x84, 0x26, 0x1, 0x0, 0x0, 0xf, 0x84, 0x20, 0x1, 0x0, 0x0, 0xf, 0x84,
   311  					0x1a, 0x1, 0x0, 0x0, 0xf, 0x84, 0x14, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x84, 0xc, 0x1, 0x0, 0x0, 0xf,
   312  					0x84, 0x6, 0x1, 0x0, 0x0, 0xf, 0x84, 0x0, 0x1, 0x0, 0x0, 0xf, 0x84, 0xfa, 0x0, 0x0, 0x0, 0xf, 0x84,
   313  					0xf4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x84, 0xec, 0x0, 0x0, 0x0, 0xf, 0x84, 0xe6, 0x0, 0x0, 0x0, 0xf,
   314  					0x84, 0xe0, 0x0, 0x0, 0x0, 0xf, 0x84, 0xda, 0x0, 0x0, 0x0, 0xf, 0x84, 0xd4, 0x0, 0x0, 0x0, 0x66, 0x90,
   315  					0xf, 0x84, 0xcc, 0x0, 0x0, 0x0, 0xf, 0x84, 0xc6, 0x0, 0x0, 0x0, 0xf, 0x84, 0xc0, 0x0, 0x0, 0x0, 0xf,
   316  					0x84, 0xba, 0x0, 0x0, 0x0, 0xf, 0x84, 0xb4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x84, 0xac, 0x0, 0x0, 0x0,
   317  					0xf, 0x84, 0xa6, 0x0, 0x0, 0x0, 0xf, 0x84, 0xa0, 0x0, 0x0, 0x0, 0xf, 0x84, 0x9a, 0x0, 0x0, 0x0, 0xf,
   318  					0x84, 0x94, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x84, 0x8c, 0x0, 0x0, 0x0, 0xf, 0x84, 0x86, 0x0, 0x0, 0x0,
   319  					0xf, 0x84, 0x80, 0x0, 0x0, 0x0, 0x74, 0x7e, 0x74, 0x7c, 0x74, 0x7a, 0x74, 0x78, 0x74, 0x76, 0x74, 0x74,
   320  					0x66, 0x90, 0x74, 0x70, 0x74, 0x6e, 0x74, 0x6c, 0x74, 0x6a, 0x74, 0x68, 0x74, 0x66, 0x74, 0x64, 0x74,
   321  					0x62, 0x74, 0x60, 0x74, 0x5e, 0x74, 0x5c, 0x74, 0x5a, 0x74, 0x58, 0x74, 0x56, 0x74, 0x54, 0x66, 0x90,
   322  					0x74, 0x50, 0x74, 0x4e, 0x74, 0x4c, 0x74, 0x4a, 0x74, 0x48, 0x74, 0x46, 0x74, 0x44, 0x74, 0x42, 0x74,
   323  					0x40, 0x74, 0x3e, 0x74, 0x3c, 0x74, 0x3a, 0x74, 0x38, 0x74, 0x36, 0x74, 0x34, 0x66, 0x90, 0x74, 0x30,
   324  					0x74, 0x2e, 0x74, 0x2c, 0x74, 0x2a, 0x74, 0x28, 0x74, 0x26, 0x74, 0x24, 0x74, 0x22, 0x74, 0x20, 0x74,
   325  					0x1e, 0x74, 0x1c, 0x74, 0x1a, 0x74, 0x18, 0x74, 0x16, 0x74, 0x14, 0x66, 0x90, 0x74, 0x10, 0x74, 0xe,
   326  					0x74, 0xc, 0x74, 0xa, 0x74, 0x8, 0x74, 0x6, 0x74, 0x4, 0x74, 0x2, 0x74, 0x0, 0xc3,
   327  				},
   328  			},
   329  			{
   330  				backward: false, jmpInst: JGE, exp: []byte{
   331  					0xc3, 0xf, 0x8d, 0x2b, 0x2, 0x0, 0x0, 0xf, 0x8d, 0x25, 0x2, 0x0, 0x0, 0xf, 0x8d, 0x1f, 0x2, 0x0,
   332  					0x0, 0xf, 0x8d, 0x19, 0x2, 0x0, 0x0, 0xf, 0x8d, 0x13, 0x2, 0x0, 0x0, 0x90, 0xf, 0x8d, 0xc, 0x2,
   333  					0x0, 0x0, 0xf, 0x8d, 0x6, 0x2, 0x0, 0x0, 0xf, 0x8d, 0x0, 0x2, 0x0, 0x0, 0xf, 0x8d, 0xfa, 0x1,
   334  					0x0, 0x0, 0xf, 0x8d, 0xf4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8d, 0xec, 0x1, 0x0, 0x0, 0xf, 0x8d,
   335  					0xe6, 0x1, 0x0, 0x0, 0xf, 0x8d, 0xe0, 0x1, 0x0, 0x0, 0xf, 0x8d, 0xda, 0x1, 0x0, 0x0, 0xf, 0x8d,
   336  					0xd4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8d, 0xcc, 0x1, 0x0, 0x0, 0xf, 0x8d, 0xc6, 0x1, 0x0, 0x0,
   337  					0xf, 0x8d, 0xc0, 0x1, 0x0, 0x0, 0xf, 0x8d, 0xba, 0x1, 0x0, 0x0, 0xf, 0x8d, 0xb4, 0x1, 0x0, 0x0,
   338  					0x66, 0x90, 0xf, 0x8d, 0xac, 0x1, 0x0, 0x0, 0xf, 0x8d, 0xa6, 0x1, 0x0, 0x0, 0xf, 0x8d, 0xa0, 0x1,
   339  					0x0, 0x0, 0xf, 0x8d, 0x9a, 0x1, 0x0, 0x0, 0xf, 0x8d, 0x94, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8d,
   340  					0x8c, 0x1, 0x0, 0x0, 0xf, 0x8d, 0x86, 0x1, 0x0, 0x0, 0xf, 0x8d, 0x80, 0x1, 0x0, 0x0, 0xf, 0x8d, 0x7a,
   341  					0x1, 0x0, 0x0, 0xf, 0x8d, 0x74, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8d, 0x6c, 0x1, 0x0, 0x0, 0xf, 0x8d,
   342  					0x66, 0x1, 0x0, 0x0, 0xf, 0x8d, 0x60, 0x1, 0x0, 0x0, 0xf, 0x8d, 0x5a, 0x1, 0x0, 0x0, 0xf, 0x8d, 0x54,
   343  					0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8d, 0x4c, 0x1, 0x0, 0x0, 0xf, 0x8d, 0x46, 0x1, 0x0, 0x0, 0xf, 0x8d,
   344  					0x40, 0x1, 0x0, 0x0, 0xf, 0x8d, 0x3a, 0x1, 0x0, 0x0, 0xf, 0x8d, 0x34, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf,
   345  					0x8d, 0x2c, 0x1, 0x0, 0x0, 0xf, 0x8d, 0x26, 0x1, 0x0, 0x0, 0xf, 0x8d, 0x20, 0x1, 0x0, 0x0, 0xf, 0x8d,
   346  					0x1a, 0x1, 0x0, 0x0, 0xf, 0x8d, 0x14, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8d, 0xc, 0x1, 0x0, 0x0, 0xf,
   347  					0x8d, 0x6, 0x1, 0x0, 0x0, 0xf, 0x8d, 0x0, 0x1, 0x0, 0x0, 0xf, 0x8d, 0xfa, 0x0, 0x0, 0x0, 0xf, 0x8d,
   348  					0xf4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8d, 0xec, 0x0, 0x0, 0x0, 0xf, 0x8d, 0xe6, 0x0, 0x0, 0x0, 0xf,
   349  					0x8d, 0xe0, 0x0, 0x0, 0x0, 0xf, 0x8d, 0xda, 0x0, 0x0, 0x0, 0xf, 0x8d, 0xd4, 0x0, 0x0, 0x0, 0x66, 0x90,
   350  					0xf, 0x8d, 0xcc, 0x0, 0x0, 0x0, 0xf, 0x8d, 0xc6, 0x0, 0x0, 0x0, 0xf, 0x8d, 0xc0, 0x0, 0x0, 0x0, 0xf,
   351  					0x8d, 0xba, 0x0, 0x0, 0x0, 0xf, 0x8d, 0xb4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8d, 0xac, 0x0, 0x0, 0x0,
   352  					0xf, 0x8d, 0xa6, 0x0, 0x0, 0x0, 0xf, 0x8d, 0xa0, 0x0, 0x0, 0x0, 0xf, 0x8d, 0x9a, 0x0, 0x0, 0x0, 0xf,
   353  					0x8d, 0x94, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8d, 0x8c, 0x0, 0x0, 0x0, 0xf, 0x8d, 0x86, 0x0, 0x0, 0x0,
   354  					0xf, 0x8d, 0x80, 0x0, 0x0, 0x0, 0x7d, 0x7e, 0x7d, 0x7c, 0x7d, 0x7a, 0x7d, 0x78, 0x7d, 0x76, 0x7d, 0x74,
   355  					0x66, 0x90, 0x7d, 0x70, 0x7d, 0x6e, 0x7d, 0x6c, 0x7d, 0x6a, 0x7d, 0x68, 0x7d, 0x66, 0x7d, 0x64, 0x7d,
   356  					0x62, 0x7d, 0x60, 0x7d, 0x5e, 0x7d, 0x5c, 0x7d, 0x5a, 0x7d, 0x58, 0x7d, 0x56, 0x7d, 0x54, 0x66, 0x90,
   357  					0x7d, 0x50, 0x7d, 0x4e, 0x7d, 0x4c, 0x7d, 0x4a, 0x7d, 0x48, 0x7d, 0x46, 0x7d, 0x44, 0x7d, 0x42, 0x7d,
   358  					0x40, 0x7d, 0x3e, 0x7d, 0x3c, 0x7d, 0x3a, 0x7d, 0x38, 0x7d, 0x36, 0x7d, 0x34, 0x66, 0x90, 0x7d, 0x30,
   359  					0x7d, 0x2e, 0x7d, 0x2c, 0x7d, 0x2a, 0x7d, 0x28, 0x7d, 0x26, 0x7d, 0x24, 0x7d, 0x22, 0x7d, 0x20, 0x7d,
   360  					0x1e, 0x7d, 0x1c, 0x7d, 0x1a, 0x7d, 0x18, 0x7d, 0x16, 0x7d, 0x14, 0x66, 0x90, 0x7d, 0x10, 0x7d, 0xe,
   361  					0x7d, 0xc, 0x7d, 0xa, 0x7d, 0x8, 0x7d, 0x6, 0x7d, 0x4, 0x7d, 0x2, 0x7d, 0x0, 0xc3,
   362  				},
   363  			},
   364  			{
   365  				backward: false, jmpInst: JGT, exp: []byte{
   366  					0xc3, 0xf, 0x8f, 0x2b, 0x2, 0x0, 0x0, 0xf, 0x8f, 0x25, 0x2, 0x0, 0x0, 0xf, 0x8f, 0x1f, 0x2, 0x0,
   367  					0x0, 0xf, 0x8f, 0x19, 0x2, 0x0, 0x0, 0xf, 0x8f, 0x13, 0x2, 0x0, 0x0, 0x90, 0xf, 0x8f, 0xc, 0x2,
   368  					0x0, 0x0, 0xf, 0x8f, 0x6, 0x2, 0x0, 0x0, 0xf, 0x8f, 0x0, 0x2, 0x0, 0x0, 0xf, 0x8f, 0xfa, 0x1,
   369  					0x0, 0x0, 0xf, 0x8f, 0xf4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8f, 0xec, 0x1, 0x0, 0x0, 0xf, 0x8f,
   370  					0xe6, 0x1, 0x0, 0x0, 0xf, 0x8f, 0xe0, 0x1, 0x0, 0x0, 0xf, 0x8f, 0xda, 0x1, 0x0, 0x0, 0xf, 0x8f,
   371  					0xd4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8f, 0xcc, 0x1, 0x0, 0x0, 0xf, 0x8f, 0xc6, 0x1, 0x0, 0x0,
   372  					0xf, 0x8f, 0xc0, 0x1, 0x0, 0x0, 0xf, 0x8f, 0xba, 0x1, 0x0, 0x0, 0xf, 0x8f, 0xb4, 0x1, 0x0, 0x0,
   373  					0x66, 0x90, 0xf, 0x8f, 0xac, 0x1, 0x0, 0x0, 0xf, 0x8f, 0xa6, 0x1, 0x0, 0x0, 0xf, 0x8f, 0xa0, 0x1,
   374  					0x0, 0x0, 0xf, 0x8f, 0x9a, 0x1, 0x0, 0x0, 0xf, 0x8f, 0x94, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8f,
   375  					0x8c, 0x1, 0x0, 0x0, 0xf, 0x8f, 0x86, 0x1, 0x0, 0x0, 0xf, 0x8f, 0x80, 0x1, 0x0, 0x0, 0xf, 0x8f, 0x7a,
   376  					0x1, 0x0, 0x0, 0xf, 0x8f, 0x74, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8f, 0x6c, 0x1, 0x0, 0x0, 0xf, 0x8f,
   377  					0x66, 0x1, 0x0, 0x0, 0xf, 0x8f, 0x60, 0x1, 0x0, 0x0, 0xf, 0x8f, 0x5a, 0x1, 0x0, 0x0, 0xf, 0x8f, 0x54,
   378  					0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8f, 0x4c, 0x1, 0x0, 0x0, 0xf, 0x8f, 0x46, 0x1, 0x0, 0x0, 0xf, 0x8f,
   379  					0x40, 0x1, 0x0, 0x0, 0xf, 0x8f, 0x3a, 0x1, 0x0, 0x0, 0xf, 0x8f, 0x34, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf,
   380  					0x8f, 0x2c, 0x1, 0x0, 0x0, 0xf, 0x8f, 0x26, 0x1, 0x0, 0x0, 0xf, 0x8f, 0x20, 0x1, 0x0, 0x0, 0xf, 0x8f,
   381  					0x1a, 0x1, 0x0, 0x0, 0xf, 0x8f, 0x14, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8f, 0xc, 0x1, 0x0, 0x0, 0xf,
   382  					0x8f, 0x6, 0x1, 0x0, 0x0, 0xf, 0x8f, 0x0, 0x1, 0x0, 0x0, 0xf, 0x8f, 0xfa, 0x0, 0x0, 0x0, 0xf, 0x8f,
   383  					0xf4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8f, 0xec, 0x0, 0x0, 0x0, 0xf, 0x8f, 0xe6, 0x0, 0x0, 0x0, 0xf,
   384  					0x8f, 0xe0, 0x0, 0x0, 0x0, 0xf, 0x8f, 0xda, 0x0, 0x0, 0x0, 0xf, 0x8f, 0xd4, 0x0, 0x0, 0x0, 0x66, 0x90,
   385  					0xf, 0x8f, 0xcc, 0x0, 0x0, 0x0, 0xf, 0x8f, 0xc6, 0x0, 0x0, 0x0, 0xf, 0x8f, 0xc0, 0x0, 0x0, 0x0, 0xf,
   386  					0x8f, 0xba, 0x0, 0x0, 0x0, 0xf, 0x8f, 0xb4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8f, 0xac, 0x0, 0x0, 0x0,
   387  					0xf, 0x8f, 0xa6, 0x0, 0x0, 0x0, 0xf, 0x8f, 0xa0, 0x0, 0x0, 0x0, 0xf, 0x8f, 0x9a, 0x0, 0x0, 0x0, 0xf,
   388  					0x8f, 0x94, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8f, 0x8c, 0x0, 0x0, 0x0, 0xf, 0x8f, 0x86, 0x0, 0x0, 0x0,
   389  					0xf, 0x8f, 0x80, 0x0, 0x0, 0x0, 0x7f, 0x7e, 0x7f, 0x7c, 0x7f, 0x7a, 0x7f, 0x78, 0x7f, 0x76, 0x7f, 0x74,
   390  					0x66, 0x90, 0x7f, 0x70, 0x7f, 0x6e, 0x7f, 0x6c, 0x7f, 0x6a, 0x7f, 0x68, 0x7f, 0x66, 0x7f, 0x64, 0x7f,
   391  					0x62, 0x7f, 0x60, 0x7f, 0x5e, 0x7f, 0x5c, 0x7f, 0x5a, 0x7f, 0x58, 0x7f, 0x56, 0x7f, 0x54, 0x66, 0x90,
   392  					0x7f, 0x50, 0x7f, 0x4e, 0x7f, 0x4c, 0x7f, 0x4a, 0x7f, 0x48, 0x7f, 0x46, 0x7f, 0x44, 0x7f, 0x42, 0x7f,
   393  					0x40, 0x7f, 0x3e, 0x7f, 0x3c, 0x7f, 0x3a, 0x7f, 0x38, 0x7f, 0x36, 0x7f, 0x34, 0x66, 0x90, 0x7f, 0x30,
   394  					0x7f, 0x2e, 0x7f, 0x2c, 0x7f, 0x2a, 0x7f, 0x28, 0x7f, 0x26, 0x7f, 0x24, 0x7f, 0x22, 0x7f, 0x20, 0x7f,
   395  					0x1e, 0x7f, 0x1c, 0x7f, 0x1a, 0x7f, 0x18, 0x7f, 0x16, 0x7f, 0x14, 0x66, 0x90, 0x7f, 0x10, 0x7f, 0xe,
   396  					0x7f, 0xc, 0x7f, 0xa, 0x7f, 0x8, 0x7f, 0x6, 0x7f, 0x4, 0x7f, 0x2, 0x7f, 0x0, 0xc3,
   397  				},
   398  			},
   399  			{
   400  				backward: false, jmpInst: JHI, exp: []byte{
   401  					0xc3, 0xf, 0x87, 0x2b, 0x2, 0x0, 0x0, 0xf, 0x87, 0x25, 0x2, 0x0, 0x0, 0xf, 0x87, 0x1f, 0x2, 0x0,
   402  					0x0, 0xf, 0x87, 0x19, 0x2, 0x0, 0x0, 0xf, 0x87, 0x13, 0x2, 0x0, 0x0, 0x90, 0xf, 0x87, 0xc, 0x2,
   403  					0x0, 0x0, 0xf, 0x87, 0x6, 0x2, 0x0, 0x0, 0xf, 0x87, 0x0, 0x2, 0x0, 0x0, 0xf, 0x87, 0xfa, 0x1,
   404  					0x0, 0x0, 0xf, 0x87, 0xf4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x87, 0xec, 0x1, 0x0, 0x0, 0xf, 0x87,
   405  					0xe6, 0x1, 0x0, 0x0, 0xf, 0x87, 0xe0, 0x1, 0x0, 0x0, 0xf, 0x87, 0xda, 0x1, 0x0, 0x0, 0xf, 0x87,
   406  					0xd4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x87, 0xcc, 0x1, 0x0, 0x0, 0xf, 0x87, 0xc6, 0x1, 0x0, 0x0,
   407  					0xf, 0x87, 0xc0, 0x1, 0x0, 0x0, 0xf, 0x87, 0xba, 0x1, 0x0, 0x0, 0xf, 0x87, 0xb4, 0x1, 0x0, 0x0,
   408  					0x66, 0x90, 0xf, 0x87, 0xac, 0x1, 0x0, 0x0, 0xf, 0x87, 0xa6, 0x1, 0x0, 0x0, 0xf, 0x87, 0xa0, 0x1,
   409  					0x0, 0x0, 0xf, 0x87, 0x9a, 0x1, 0x0, 0x0, 0xf, 0x87, 0x94, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x87,
   410  					0x8c, 0x1, 0x0, 0x0, 0xf, 0x87, 0x86, 0x1, 0x0, 0x0, 0xf, 0x87, 0x80, 0x1, 0x0, 0x0, 0xf, 0x87, 0x7a,
   411  					0x1, 0x0, 0x0, 0xf, 0x87, 0x74, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x87, 0x6c, 0x1, 0x0, 0x0, 0xf, 0x87,
   412  					0x66, 0x1, 0x0, 0x0, 0xf, 0x87, 0x60, 0x1, 0x0, 0x0, 0xf, 0x87, 0x5a, 0x1, 0x0, 0x0, 0xf, 0x87, 0x54,
   413  					0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x87, 0x4c, 0x1, 0x0, 0x0, 0xf, 0x87, 0x46, 0x1, 0x0, 0x0, 0xf, 0x87,
   414  					0x40, 0x1, 0x0, 0x0, 0xf, 0x87, 0x3a, 0x1, 0x0, 0x0, 0xf, 0x87, 0x34, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf,
   415  					0x87, 0x2c, 0x1, 0x0, 0x0, 0xf, 0x87, 0x26, 0x1, 0x0, 0x0, 0xf, 0x87, 0x20, 0x1, 0x0, 0x0, 0xf, 0x87,
   416  					0x1a, 0x1, 0x0, 0x0, 0xf, 0x87, 0x14, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x87, 0xc, 0x1, 0x0, 0x0, 0xf,
   417  					0x87, 0x6, 0x1, 0x0, 0x0, 0xf, 0x87, 0x0, 0x1, 0x0, 0x0, 0xf, 0x87, 0xfa, 0x0, 0x0, 0x0, 0xf, 0x87,
   418  					0xf4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x87, 0xec, 0x0, 0x0, 0x0, 0xf, 0x87, 0xe6, 0x0, 0x0, 0x0, 0xf,
   419  					0x87, 0xe0, 0x0, 0x0, 0x0, 0xf, 0x87, 0xda, 0x0, 0x0, 0x0, 0xf, 0x87, 0xd4, 0x0, 0x0, 0x0, 0x66, 0x90,
   420  					0xf, 0x87, 0xcc, 0x0, 0x0, 0x0, 0xf, 0x87, 0xc6, 0x0, 0x0, 0x0, 0xf, 0x87, 0xc0, 0x0, 0x0, 0x0, 0xf,
   421  					0x87, 0xba, 0x0, 0x0, 0x0, 0xf, 0x87, 0xb4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x87, 0xac, 0x0, 0x0, 0x0,
   422  					0xf, 0x87, 0xa6, 0x0, 0x0, 0x0, 0xf, 0x87, 0xa0, 0x0, 0x0, 0x0, 0xf, 0x87, 0x9a, 0x0, 0x0, 0x0, 0xf,
   423  					0x87, 0x94, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x87, 0x8c, 0x0, 0x0, 0x0, 0xf, 0x87, 0x86, 0x0, 0x0, 0x0,
   424  					0xf, 0x87, 0x80, 0x0, 0x0, 0x0, 0x77, 0x7e, 0x77, 0x7c, 0x77, 0x7a, 0x77, 0x78, 0x77, 0x76, 0x77, 0x74,
   425  					0x66, 0x90, 0x77, 0x70, 0x77, 0x6e, 0x77, 0x6c, 0x77, 0x6a, 0x77, 0x68, 0x77, 0x66, 0x77, 0x64, 0x77,
   426  					0x62, 0x77, 0x60, 0x77, 0x5e, 0x77, 0x5c, 0x77, 0x5a, 0x77, 0x58, 0x77, 0x56, 0x77, 0x54, 0x66, 0x90,
   427  					0x77, 0x50, 0x77, 0x4e, 0x77, 0x4c, 0x77, 0x4a, 0x77, 0x48, 0x77, 0x46, 0x77, 0x44, 0x77, 0x42, 0x77,
   428  					0x40, 0x77, 0x3e, 0x77, 0x3c, 0x77, 0x3a, 0x77, 0x38, 0x77, 0x36, 0x77, 0x34, 0x66, 0x90, 0x77, 0x30,
   429  					0x77, 0x2e, 0x77, 0x2c, 0x77, 0x2a, 0x77, 0x28, 0x77, 0x26, 0x77, 0x24, 0x77, 0x22, 0x77, 0x20, 0x77,
   430  					0x1e, 0x77, 0x1c, 0x77, 0x1a, 0x77, 0x18, 0x77, 0x16, 0x77, 0x14, 0x66, 0x90, 0x77, 0x10, 0x77, 0xe,
   431  					0x77, 0xc, 0x77, 0xa, 0x77, 0x8, 0x77, 0x6, 0x77, 0x4, 0x77, 0x2, 0x77, 0x0, 0xc3,
   432  				},
   433  			},
   434  			{
   435  				backward: false, jmpInst: JLE, exp: []byte{
   436  					0xc3, 0xf, 0x8e, 0x2b, 0x2, 0x0, 0x0, 0xf, 0x8e, 0x25, 0x2, 0x0, 0x0, 0xf, 0x8e, 0x1f, 0x2, 0x0,
   437  					0x0, 0xf, 0x8e, 0x19, 0x2, 0x0, 0x0, 0xf, 0x8e, 0x13, 0x2, 0x0, 0x0, 0x90, 0xf, 0x8e, 0xc, 0x2,
   438  					0x0, 0x0, 0xf, 0x8e, 0x6, 0x2, 0x0, 0x0, 0xf, 0x8e, 0x0, 0x2, 0x0, 0x0, 0xf, 0x8e, 0xfa, 0x1,
   439  					0x0, 0x0, 0xf, 0x8e, 0xf4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8e, 0xec, 0x1, 0x0, 0x0, 0xf, 0x8e,
   440  					0xe6, 0x1, 0x0, 0x0, 0xf, 0x8e, 0xe0, 0x1, 0x0, 0x0, 0xf, 0x8e, 0xda, 0x1, 0x0, 0x0, 0xf, 0x8e,
   441  					0xd4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8e, 0xcc, 0x1, 0x0, 0x0, 0xf, 0x8e, 0xc6, 0x1, 0x0, 0x0,
   442  					0xf, 0x8e, 0xc0, 0x1, 0x0, 0x0, 0xf, 0x8e, 0xba, 0x1, 0x0, 0x0, 0xf, 0x8e, 0xb4, 0x1, 0x0, 0x0,
   443  					0x66, 0x90, 0xf, 0x8e, 0xac, 0x1, 0x0, 0x0, 0xf, 0x8e, 0xa6, 0x1, 0x0, 0x0, 0xf, 0x8e, 0xa0, 0x1,
   444  					0x0, 0x0, 0xf, 0x8e, 0x9a, 0x1, 0x0, 0x0, 0xf, 0x8e, 0x94, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8e,
   445  					0x8c, 0x1, 0x0, 0x0, 0xf, 0x8e, 0x86, 0x1, 0x0, 0x0, 0xf, 0x8e, 0x80, 0x1, 0x0, 0x0, 0xf, 0x8e, 0x7a,
   446  					0x1, 0x0, 0x0, 0xf, 0x8e, 0x74, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8e, 0x6c, 0x1, 0x0, 0x0, 0xf, 0x8e,
   447  					0x66, 0x1, 0x0, 0x0, 0xf, 0x8e, 0x60, 0x1, 0x0, 0x0, 0xf, 0x8e, 0x5a, 0x1, 0x0, 0x0, 0xf, 0x8e, 0x54,
   448  					0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8e, 0x4c, 0x1, 0x0, 0x0, 0xf, 0x8e, 0x46, 0x1, 0x0, 0x0, 0xf, 0x8e,
   449  					0x40, 0x1, 0x0, 0x0, 0xf, 0x8e, 0x3a, 0x1, 0x0, 0x0, 0xf, 0x8e, 0x34, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf,
   450  					0x8e, 0x2c, 0x1, 0x0, 0x0, 0xf, 0x8e, 0x26, 0x1, 0x0, 0x0, 0xf, 0x8e, 0x20, 0x1, 0x0, 0x0, 0xf, 0x8e,
   451  					0x1a, 0x1, 0x0, 0x0, 0xf, 0x8e, 0x14, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8e, 0xc, 0x1, 0x0, 0x0, 0xf,
   452  					0x8e, 0x6, 0x1, 0x0, 0x0, 0xf, 0x8e, 0x0, 0x1, 0x0, 0x0, 0xf, 0x8e, 0xfa, 0x0, 0x0, 0x0, 0xf, 0x8e,
   453  					0xf4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8e, 0xec, 0x0, 0x0, 0x0, 0xf, 0x8e, 0xe6, 0x0, 0x0, 0x0, 0xf,
   454  					0x8e, 0xe0, 0x0, 0x0, 0x0, 0xf, 0x8e, 0xda, 0x0, 0x0, 0x0, 0xf, 0x8e, 0xd4, 0x0, 0x0, 0x0, 0x66, 0x90,
   455  					0xf, 0x8e, 0xcc, 0x0, 0x0, 0x0, 0xf, 0x8e, 0xc6, 0x0, 0x0, 0x0, 0xf, 0x8e, 0xc0, 0x0, 0x0, 0x0, 0xf,
   456  					0x8e, 0xba, 0x0, 0x0, 0x0, 0xf, 0x8e, 0xb4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8e, 0xac, 0x0, 0x0, 0x0,
   457  					0xf, 0x8e, 0xa6, 0x0, 0x0, 0x0, 0xf, 0x8e, 0xa0, 0x0, 0x0, 0x0, 0xf, 0x8e, 0x9a, 0x0, 0x0, 0x0, 0xf,
   458  					0x8e, 0x94, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8e, 0x8c, 0x0, 0x0, 0x0, 0xf, 0x8e, 0x86, 0x0, 0x0, 0x0,
   459  					0xf, 0x8e, 0x80, 0x0, 0x0, 0x0, 0x7e, 0x7e, 0x7e, 0x7c, 0x7e, 0x7a, 0x7e, 0x78, 0x7e, 0x76, 0x7e, 0x74,
   460  					0x66, 0x90, 0x7e, 0x70, 0x7e, 0x6e, 0x7e, 0x6c, 0x7e, 0x6a, 0x7e, 0x68, 0x7e, 0x66, 0x7e, 0x64, 0x7e,
   461  					0x62, 0x7e, 0x60, 0x7e, 0x5e, 0x7e, 0x5c, 0x7e, 0x5a, 0x7e, 0x58, 0x7e, 0x56, 0x7e, 0x54, 0x66, 0x90,
   462  					0x7e, 0x50, 0x7e, 0x4e, 0x7e, 0x4c, 0x7e, 0x4a, 0x7e, 0x48, 0x7e, 0x46, 0x7e, 0x44, 0x7e, 0x42, 0x7e,
   463  					0x40, 0x7e, 0x3e, 0x7e, 0x3c, 0x7e, 0x3a, 0x7e, 0x38, 0x7e, 0x36, 0x7e, 0x34, 0x66, 0x90, 0x7e, 0x30,
   464  					0x7e, 0x2e, 0x7e, 0x2c, 0x7e, 0x2a, 0x7e, 0x28, 0x7e, 0x26, 0x7e, 0x24, 0x7e, 0x22, 0x7e, 0x20, 0x7e,
   465  					0x1e, 0x7e, 0x1c, 0x7e, 0x1a, 0x7e, 0x18, 0x7e, 0x16, 0x7e, 0x14, 0x66, 0x90, 0x7e, 0x10, 0x7e, 0xe,
   466  					0x7e, 0xc, 0x7e, 0xa, 0x7e, 0x8, 0x7e, 0x6, 0x7e, 0x4, 0x7e, 0x2, 0x7e, 0x0, 0xc3,
   467  				},
   468  			},
   469  			{
   470  				backward: false, jmpInst: JLS, exp: []byte{
   471  					0xc3, 0xf, 0x86, 0x2b, 0x2, 0x0, 0x0, 0xf, 0x86, 0x25, 0x2, 0x0, 0x0, 0xf, 0x86, 0x1f, 0x2, 0x0,
   472  					0x0, 0xf, 0x86, 0x19, 0x2, 0x0, 0x0, 0xf, 0x86, 0x13, 0x2, 0x0, 0x0, 0x90, 0xf, 0x86, 0xc, 0x2,
   473  					0x0, 0x0, 0xf, 0x86, 0x6, 0x2, 0x0, 0x0, 0xf, 0x86, 0x0, 0x2, 0x0, 0x0, 0xf, 0x86, 0xfa, 0x1,
   474  					0x0, 0x0, 0xf, 0x86, 0xf4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x86, 0xec, 0x1, 0x0, 0x0, 0xf, 0x86,
   475  					0xe6, 0x1, 0x0, 0x0, 0xf, 0x86, 0xe0, 0x1, 0x0, 0x0, 0xf, 0x86, 0xda, 0x1, 0x0, 0x0, 0xf, 0x86,
   476  					0xd4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x86, 0xcc, 0x1, 0x0, 0x0, 0xf, 0x86, 0xc6, 0x1, 0x0, 0x0,
   477  					0xf, 0x86, 0xc0, 0x1, 0x0, 0x0, 0xf, 0x86, 0xba, 0x1, 0x0, 0x0, 0xf, 0x86, 0xb4, 0x1, 0x0, 0x0,
   478  					0x66, 0x90, 0xf, 0x86, 0xac, 0x1, 0x0, 0x0, 0xf, 0x86, 0xa6, 0x1, 0x0, 0x0, 0xf, 0x86, 0xa0, 0x1,
   479  					0x0, 0x0, 0xf, 0x86, 0x9a, 0x1, 0x0, 0x0, 0xf, 0x86, 0x94, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x86,
   480  					0x8c, 0x1, 0x0, 0x0, 0xf, 0x86, 0x86, 0x1, 0x0, 0x0, 0xf, 0x86, 0x80, 0x1, 0x0, 0x0, 0xf, 0x86, 0x7a,
   481  					0x1, 0x0, 0x0, 0xf, 0x86, 0x74, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x86, 0x6c, 0x1, 0x0, 0x0, 0xf, 0x86,
   482  					0x66, 0x1, 0x0, 0x0, 0xf, 0x86, 0x60, 0x1, 0x0, 0x0, 0xf, 0x86, 0x5a, 0x1, 0x0, 0x0, 0xf, 0x86, 0x54,
   483  					0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x86, 0x4c, 0x1, 0x0, 0x0, 0xf, 0x86, 0x46, 0x1, 0x0, 0x0, 0xf, 0x86,
   484  					0x40, 0x1, 0x0, 0x0, 0xf, 0x86, 0x3a, 0x1, 0x0, 0x0, 0xf, 0x86, 0x34, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf,
   485  					0x86, 0x2c, 0x1, 0x0, 0x0, 0xf, 0x86, 0x26, 0x1, 0x0, 0x0, 0xf, 0x86, 0x20, 0x1, 0x0, 0x0, 0xf, 0x86,
   486  					0x1a, 0x1, 0x0, 0x0, 0xf, 0x86, 0x14, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x86, 0xc, 0x1, 0x0, 0x0, 0xf,
   487  					0x86, 0x6, 0x1, 0x0, 0x0, 0xf, 0x86, 0x0, 0x1, 0x0, 0x0, 0xf, 0x86, 0xfa, 0x0, 0x0, 0x0, 0xf, 0x86,
   488  					0xf4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x86, 0xec, 0x0, 0x0, 0x0, 0xf, 0x86, 0xe6, 0x0, 0x0, 0x0, 0xf,
   489  					0x86, 0xe0, 0x0, 0x0, 0x0, 0xf, 0x86, 0xda, 0x0, 0x0, 0x0, 0xf, 0x86, 0xd4, 0x0, 0x0, 0x0, 0x66, 0x90,
   490  					0xf, 0x86, 0xcc, 0x0, 0x0, 0x0, 0xf, 0x86, 0xc6, 0x0, 0x0, 0x0, 0xf, 0x86, 0xc0, 0x0, 0x0, 0x0, 0xf,
   491  					0x86, 0xba, 0x0, 0x0, 0x0, 0xf, 0x86, 0xb4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x86, 0xac, 0x0, 0x0, 0x0,
   492  					0xf, 0x86, 0xa6, 0x0, 0x0, 0x0, 0xf, 0x86, 0xa0, 0x0, 0x0, 0x0, 0xf, 0x86, 0x9a, 0x0, 0x0, 0x0, 0xf,
   493  					0x86, 0x94, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x86, 0x8c, 0x0, 0x0, 0x0, 0xf, 0x86, 0x86, 0x0, 0x0, 0x0,
   494  					0xf, 0x86, 0x80, 0x0, 0x0, 0x0, 0x76, 0x7e, 0x76, 0x7c, 0x76, 0x7a, 0x76, 0x78, 0x76, 0x76, 0x76, 0x74,
   495  					0x66, 0x90, 0x76, 0x70, 0x76, 0x6e, 0x76, 0x6c, 0x76, 0x6a, 0x76, 0x68, 0x76, 0x66, 0x76, 0x64, 0x76,
   496  					0x62, 0x76, 0x60, 0x76, 0x5e, 0x76, 0x5c, 0x76, 0x5a, 0x76, 0x58, 0x76, 0x56, 0x76, 0x54, 0x66, 0x90,
   497  					0x76, 0x50, 0x76, 0x4e, 0x76, 0x4c, 0x76, 0x4a, 0x76, 0x48, 0x76, 0x46, 0x76, 0x44, 0x76, 0x42, 0x76,
   498  					0x40, 0x76, 0x3e, 0x76, 0x3c, 0x76, 0x3a, 0x76, 0x38, 0x76, 0x36, 0x76, 0x34, 0x66, 0x90, 0x76, 0x30,
   499  					0x76, 0x2e, 0x76, 0x2c, 0x76, 0x2a, 0x76, 0x28, 0x76, 0x26, 0x76, 0x24, 0x76, 0x22, 0x76, 0x20, 0x76,
   500  					0x1e, 0x76, 0x1c, 0x76, 0x1a, 0x76, 0x18, 0x76, 0x16, 0x76, 0x14, 0x66, 0x90, 0x76, 0x10, 0x76, 0xe,
   501  					0x76, 0xc, 0x76, 0xa, 0x76, 0x8, 0x76, 0x6, 0x76, 0x4, 0x76, 0x2, 0x76, 0x0, 0xc3,
   502  				},
   503  			},
   504  			{
   505  				backward: false, jmpInst: JLT, exp: []byte{
   506  					0xc3, 0xf, 0x8c, 0x2b, 0x2, 0x0, 0x0, 0xf, 0x8c, 0x25, 0x2, 0x0, 0x0, 0xf, 0x8c, 0x1f, 0x2, 0x0,
   507  					0x0, 0xf, 0x8c, 0x19, 0x2, 0x0, 0x0, 0xf, 0x8c, 0x13, 0x2, 0x0, 0x0, 0x90, 0xf, 0x8c, 0xc, 0x2,
   508  					0x0, 0x0, 0xf, 0x8c, 0x6, 0x2, 0x0, 0x0, 0xf, 0x8c, 0x0, 0x2, 0x0, 0x0, 0xf, 0x8c, 0xfa, 0x1,
   509  					0x0, 0x0, 0xf, 0x8c, 0xf4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8c, 0xec, 0x1, 0x0, 0x0, 0xf, 0x8c,
   510  					0xe6, 0x1, 0x0, 0x0, 0xf, 0x8c, 0xe0, 0x1, 0x0, 0x0, 0xf, 0x8c, 0xda, 0x1, 0x0, 0x0, 0xf, 0x8c,
   511  					0xd4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8c, 0xcc, 0x1, 0x0, 0x0, 0xf, 0x8c, 0xc6, 0x1, 0x0, 0x0,
   512  					0xf, 0x8c, 0xc0, 0x1, 0x0, 0x0, 0xf, 0x8c, 0xba, 0x1, 0x0, 0x0, 0xf, 0x8c, 0xb4, 0x1, 0x0, 0x0,
   513  					0x66, 0x90, 0xf, 0x8c, 0xac, 0x1, 0x0, 0x0, 0xf, 0x8c, 0xa6, 0x1, 0x0, 0x0, 0xf, 0x8c, 0xa0, 0x1,
   514  					0x0, 0x0, 0xf, 0x8c, 0x9a, 0x1, 0x0, 0x0, 0xf, 0x8c, 0x94, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8c,
   515  					0x8c, 0x1, 0x0, 0x0, 0xf, 0x8c, 0x86, 0x1, 0x0, 0x0, 0xf, 0x8c, 0x80, 0x1, 0x0, 0x0, 0xf, 0x8c, 0x7a,
   516  					0x1, 0x0, 0x0, 0xf, 0x8c, 0x74, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8c, 0x6c, 0x1, 0x0, 0x0, 0xf, 0x8c,
   517  					0x66, 0x1, 0x0, 0x0, 0xf, 0x8c, 0x60, 0x1, 0x0, 0x0, 0xf, 0x8c, 0x5a, 0x1, 0x0, 0x0, 0xf, 0x8c, 0x54,
   518  					0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8c, 0x4c, 0x1, 0x0, 0x0, 0xf, 0x8c, 0x46, 0x1, 0x0, 0x0, 0xf, 0x8c,
   519  					0x40, 0x1, 0x0, 0x0, 0xf, 0x8c, 0x3a, 0x1, 0x0, 0x0, 0xf, 0x8c, 0x34, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf,
   520  					0x8c, 0x2c, 0x1, 0x0, 0x0, 0xf, 0x8c, 0x26, 0x1, 0x0, 0x0, 0xf, 0x8c, 0x20, 0x1, 0x0, 0x0, 0xf, 0x8c,
   521  					0x1a, 0x1, 0x0, 0x0, 0xf, 0x8c, 0x14, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8c, 0xc, 0x1, 0x0, 0x0, 0xf,
   522  					0x8c, 0x6, 0x1, 0x0, 0x0, 0xf, 0x8c, 0x0, 0x1, 0x0, 0x0, 0xf, 0x8c, 0xfa, 0x0, 0x0, 0x0, 0xf, 0x8c,
   523  					0xf4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8c, 0xec, 0x0, 0x0, 0x0, 0xf, 0x8c, 0xe6, 0x0, 0x0, 0x0, 0xf,
   524  					0x8c, 0xe0, 0x0, 0x0, 0x0, 0xf, 0x8c, 0xda, 0x0, 0x0, 0x0, 0xf, 0x8c, 0xd4, 0x0, 0x0, 0x0, 0x66, 0x90,
   525  					0xf, 0x8c, 0xcc, 0x0, 0x0, 0x0, 0xf, 0x8c, 0xc6, 0x0, 0x0, 0x0, 0xf, 0x8c, 0xc0, 0x0, 0x0, 0x0, 0xf,
   526  					0x8c, 0xba, 0x0, 0x0, 0x0, 0xf, 0x8c, 0xb4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8c, 0xac, 0x0, 0x0, 0x0,
   527  					0xf, 0x8c, 0xa6, 0x0, 0x0, 0x0, 0xf, 0x8c, 0xa0, 0x0, 0x0, 0x0, 0xf, 0x8c, 0x9a, 0x0, 0x0, 0x0, 0xf,
   528  					0x8c, 0x94, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8c, 0x8c, 0x0, 0x0, 0x0, 0xf, 0x8c, 0x86, 0x0, 0x0, 0x0,
   529  					0xf, 0x8c, 0x80, 0x0, 0x0, 0x0, 0x7c, 0x7e, 0x7c, 0x7c, 0x7c, 0x7a, 0x7c, 0x78, 0x7c, 0x76, 0x7c, 0x74,
   530  					0x66, 0x90, 0x7c, 0x70, 0x7c, 0x6e, 0x7c, 0x6c, 0x7c, 0x6a, 0x7c, 0x68, 0x7c, 0x66, 0x7c, 0x64, 0x7c,
   531  					0x62, 0x7c, 0x60, 0x7c, 0x5e, 0x7c, 0x5c, 0x7c, 0x5a, 0x7c, 0x58, 0x7c, 0x56, 0x7c, 0x54, 0x66, 0x90,
   532  					0x7c, 0x50, 0x7c, 0x4e, 0x7c, 0x4c, 0x7c, 0x4a, 0x7c, 0x48, 0x7c, 0x46, 0x7c, 0x44, 0x7c, 0x42, 0x7c,
   533  					0x40, 0x7c, 0x3e, 0x7c, 0x3c, 0x7c, 0x3a, 0x7c, 0x38, 0x7c, 0x36, 0x7c, 0x34, 0x66, 0x90, 0x7c, 0x30,
   534  					0x7c, 0x2e, 0x7c, 0x2c, 0x7c, 0x2a, 0x7c, 0x28, 0x7c, 0x26, 0x7c, 0x24, 0x7c, 0x22, 0x7c, 0x20, 0x7c,
   535  					0x1e, 0x7c, 0x1c, 0x7c, 0x1a, 0x7c, 0x18, 0x7c, 0x16, 0x7c, 0x14, 0x66, 0x90, 0x7c, 0x10, 0x7c, 0xe,
   536  					0x7c, 0xc, 0x7c, 0xa, 0x7c, 0x8, 0x7c, 0x6, 0x7c, 0x4, 0x7c, 0x2, 0x7c, 0x0, 0xc3,
   537  				},
   538  			},
   539  			{
   540  				backward: false, jmpInst: JMI, exp: []byte{
   541  					0xc3, 0xf, 0x88, 0x2b, 0x2, 0x0, 0x0, 0xf, 0x88, 0x25, 0x2, 0x0, 0x0, 0xf, 0x88, 0x1f, 0x2, 0x0,
   542  					0x0, 0xf, 0x88, 0x19, 0x2, 0x0, 0x0, 0xf, 0x88, 0x13, 0x2, 0x0, 0x0, 0x90, 0xf, 0x88, 0xc, 0x2,
   543  					0x0, 0x0, 0xf, 0x88, 0x6, 0x2, 0x0, 0x0, 0xf, 0x88, 0x0, 0x2, 0x0, 0x0, 0xf, 0x88, 0xfa, 0x1,
   544  					0x0, 0x0, 0xf, 0x88, 0xf4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x88, 0xec, 0x1, 0x0, 0x0, 0xf, 0x88,
   545  					0xe6, 0x1, 0x0, 0x0, 0xf, 0x88, 0xe0, 0x1, 0x0, 0x0, 0xf, 0x88, 0xda, 0x1, 0x0, 0x0, 0xf, 0x88,
   546  					0xd4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x88, 0xcc, 0x1, 0x0, 0x0, 0xf, 0x88, 0xc6, 0x1, 0x0, 0x0,
   547  					0xf, 0x88, 0xc0, 0x1, 0x0, 0x0, 0xf, 0x88, 0xba, 0x1, 0x0, 0x0, 0xf, 0x88, 0xb4, 0x1, 0x0, 0x0,
   548  					0x66, 0x90, 0xf, 0x88, 0xac, 0x1, 0x0, 0x0, 0xf, 0x88, 0xa6, 0x1, 0x0, 0x0, 0xf, 0x88, 0xa0, 0x1,
   549  					0x0, 0x0, 0xf, 0x88, 0x9a, 0x1, 0x0, 0x0, 0xf, 0x88, 0x94, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x88,
   550  					0x8c, 0x1, 0x0, 0x0, 0xf, 0x88, 0x86, 0x1, 0x0, 0x0, 0xf, 0x88, 0x80, 0x1, 0x0, 0x0, 0xf, 0x88, 0x7a,
   551  					0x1, 0x0, 0x0, 0xf, 0x88, 0x74, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x88, 0x6c, 0x1, 0x0, 0x0, 0xf, 0x88,
   552  					0x66, 0x1, 0x0, 0x0, 0xf, 0x88, 0x60, 0x1, 0x0, 0x0, 0xf, 0x88, 0x5a, 0x1, 0x0, 0x0, 0xf, 0x88, 0x54,
   553  					0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x88, 0x4c, 0x1, 0x0, 0x0, 0xf, 0x88, 0x46, 0x1, 0x0, 0x0, 0xf, 0x88,
   554  					0x40, 0x1, 0x0, 0x0, 0xf, 0x88, 0x3a, 0x1, 0x0, 0x0, 0xf, 0x88, 0x34, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf,
   555  					0x88, 0x2c, 0x1, 0x0, 0x0, 0xf, 0x88, 0x26, 0x1, 0x0, 0x0, 0xf, 0x88, 0x20, 0x1, 0x0, 0x0, 0xf, 0x88,
   556  					0x1a, 0x1, 0x0, 0x0, 0xf, 0x88, 0x14, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x88, 0xc, 0x1, 0x0, 0x0, 0xf,
   557  					0x88, 0x6, 0x1, 0x0, 0x0, 0xf, 0x88, 0x0, 0x1, 0x0, 0x0, 0xf, 0x88, 0xfa, 0x0, 0x0, 0x0, 0xf, 0x88,
   558  					0xf4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x88, 0xec, 0x0, 0x0, 0x0, 0xf, 0x88, 0xe6, 0x0, 0x0, 0x0, 0xf,
   559  					0x88, 0xe0, 0x0, 0x0, 0x0, 0xf, 0x88, 0xda, 0x0, 0x0, 0x0, 0xf, 0x88, 0xd4, 0x0, 0x0, 0x0, 0x66, 0x90,
   560  					0xf, 0x88, 0xcc, 0x0, 0x0, 0x0, 0xf, 0x88, 0xc6, 0x0, 0x0, 0x0, 0xf, 0x88, 0xc0, 0x0, 0x0, 0x0, 0xf,
   561  					0x88, 0xba, 0x0, 0x0, 0x0, 0xf, 0x88, 0xb4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x88, 0xac, 0x0, 0x0, 0x0,
   562  					0xf, 0x88, 0xa6, 0x0, 0x0, 0x0, 0xf, 0x88, 0xa0, 0x0, 0x0, 0x0, 0xf, 0x88, 0x9a, 0x0, 0x0, 0x0, 0xf,
   563  					0x88, 0x94, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x88, 0x8c, 0x0, 0x0, 0x0, 0xf, 0x88, 0x86, 0x0, 0x0, 0x0,
   564  					0xf, 0x88, 0x80, 0x0, 0x0, 0x0, 0x78, 0x7e, 0x78, 0x7c, 0x78, 0x7a, 0x78, 0x78, 0x78, 0x76, 0x78, 0x74,
   565  					0x66, 0x90, 0x78, 0x70, 0x78, 0x6e, 0x78, 0x6c, 0x78, 0x6a, 0x78, 0x68, 0x78, 0x66, 0x78, 0x64, 0x78,
   566  					0x62, 0x78, 0x60, 0x78, 0x5e, 0x78, 0x5c, 0x78, 0x5a, 0x78, 0x58, 0x78, 0x56, 0x78, 0x54, 0x66, 0x90,
   567  					0x78, 0x50, 0x78, 0x4e, 0x78, 0x4c, 0x78, 0x4a, 0x78, 0x48, 0x78, 0x46, 0x78, 0x44, 0x78, 0x42, 0x78,
   568  					0x40, 0x78, 0x3e, 0x78, 0x3c, 0x78, 0x3a, 0x78, 0x38, 0x78, 0x36, 0x78, 0x34, 0x66, 0x90, 0x78, 0x30,
   569  					0x78, 0x2e, 0x78, 0x2c, 0x78, 0x2a, 0x78, 0x28, 0x78, 0x26, 0x78, 0x24, 0x78, 0x22, 0x78, 0x20, 0x78,
   570  					0x1e, 0x78, 0x1c, 0x78, 0x1a, 0x78, 0x18, 0x78, 0x16, 0x78, 0x14, 0x66, 0x90, 0x78, 0x10, 0x78, 0xe,
   571  					0x78, 0xc, 0x78, 0xa, 0x78, 0x8, 0x78, 0x6, 0x78, 0x4, 0x78, 0x2, 0x78, 0x0, 0xc3,
   572  				},
   573  			},
   574  			{
   575  				backward: false, jmpInst: JNE, exp: []byte{
   576  					0xc3, 0xf, 0x85, 0x2b, 0x2, 0x0, 0x0, 0xf, 0x85, 0x25, 0x2, 0x0, 0x0, 0xf, 0x85, 0x1f, 0x2, 0x0,
   577  					0x0, 0xf, 0x85, 0x19, 0x2, 0x0, 0x0, 0xf, 0x85, 0x13, 0x2, 0x0, 0x0, 0x90, 0xf, 0x85, 0xc, 0x2,
   578  					0x0, 0x0, 0xf, 0x85, 0x6, 0x2, 0x0, 0x0, 0xf, 0x85, 0x0, 0x2, 0x0, 0x0, 0xf, 0x85, 0xfa, 0x1,
   579  					0x0, 0x0, 0xf, 0x85, 0xf4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x85, 0xec, 0x1, 0x0, 0x0, 0xf, 0x85,
   580  					0xe6, 0x1, 0x0, 0x0, 0xf, 0x85, 0xe0, 0x1, 0x0, 0x0, 0xf, 0x85, 0xda, 0x1, 0x0, 0x0, 0xf, 0x85,
   581  					0xd4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x85, 0xcc, 0x1, 0x0, 0x0, 0xf, 0x85, 0xc6, 0x1, 0x0, 0x0,
   582  					0xf, 0x85, 0xc0, 0x1, 0x0, 0x0, 0xf, 0x85, 0xba, 0x1, 0x0, 0x0, 0xf, 0x85, 0xb4, 0x1, 0x0, 0x0,
   583  					0x66, 0x90, 0xf, 0x85, 0xac, 0x1, 0x0, 0x0, 0xf, 0x85, 0xa6, 0x1, 0x0, 0x0, 0xf, 0x85, 0xa0, 0x1,
   584  					0x0, 0x0, 0xf, 0x85, 0x9a, 0x1, 0x0, 0x0, 0xf, 0x85, 0x94, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x85,
   585  					0x8c, 0x1, 0x0, 0x0, 0xf, 0x85, 0x86, 0x1, 0x0, 0x0, 0xf, 0x85, 0x80, 0x1, 0x0, 0x0, 0xf, 0x85, 0x7a,
   586  					0x1, 0x0, 0x0, 0xf, 0x85, 0x74, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x85, 0x6c, 0x1, 0x0, 0x0, 0xf, 0x85,
   587  					0x66, 0x1, 0x0, 0x0, 0xf, 0x85, 0x60, 0x1, 0x0, 0x0, 0xf, 0x85, 0x5a, 0x1, 0x0, 0x0, 0xf, 0x85, 0x54,
   588  					0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x85, 0x4c, 0x1, 0x0, 0x0, 0xf, 0x85, 0x46, 0x1, 0x0, 0x0, 0xf, 0x85,
   589  					0x40, 0x1, 0x0, 0x0, 0xf, 0x85, 0x3a, 0x1, 0x0, 0x0, 0xf, 0x85, 0x34, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf,
   590  					0x85, 0x2c, 0x1, 0x0, 0x0, 0xf, 0x85, 0x26, 0x1, 0x0, 0x0, 0xf, 0x85, 0x20, 0x1, 0x0, 0x0, 0xf, 0x85,
   591  					0x1a, 0x1, 0x0, 0x0, 0xf, 0x85, 0x14, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x85, 0xc, 0x1, 0x0, 0x0, 0xf,
   592  					0x85, 0x6, 0x1, 0x0, 0x0, 0xf, 0x85, 0x0, 0x1, 0x0, 0x0, 0xf, 0x85, 0xfa, 0x0, 0x0, 0x0, 0xf, 0x85,
   593  					0xf4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x85, 0xec, 0x0, 0x0, 0x0, 0xf, 0x85, 0xe6, 0x0, 0x0, 0x0, 0xf,
   594  					0x85, 0xe0, 0x0, 0x0, 0x0, 0xf, 0x85, 0xda, 0x0, 0x0, 0x0, 0xf, 0x85, 0xd4, 0x0, 0x0, 0x0, 0x66, 0x90,
   595  					0xf, 0x85, 0xcc, 0x0, 0x0, 0x0, 0xf, 0x85, 0xc6, 0x0, 0x0, 0x0, 0xf, 0x85, 0xc0, 0x0, 0x0, 0x0, 0xf,
   596  					0x85, 0xba, 0x0, 0x0, 0x0, 0xf, 0x85, 0xb4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x85, 0xac, 0x0, 0x0, 0x0,
   597  					0xf, 0x85, 0xa6, 0x0, 0x0, 0x0, 0xf, 0x85, 0xa0, 0x0, 0x0, 0x0, 0xf, 0x85, 0x9a, 0x0, 0x0, 0x0, 0xf,
   598  					0x85, 0x94, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x85, 0x8c, 0x0, 0x0, 0x0, 0xf, 0x85, 0x86, 0x0, 0x0, 0x0,
   599  					0xf, 0x85, 0x80, 0x0, 0x0, 0x0, 0x75, 0x7e, 0x75, 0x7c, 0x75, 0x7a, 0x75, 0x78, 0x75, 0x76, 0x75, 0x74,
   600  					0x66, 0x90, 0x75, 0x70, 0x75, 0x6e, 0x75, 0x6c, 0x75, 0x6a, 0x75, 0x68, 0x75, 0x66, 0x75, 0x64, 0x75,
   601  					0x62, 0x75, 0x60, 0x75, 0x5e, 0x75, 0x5c, 0x75, 0x5a, 0x75, 0x58, 0x75, 0x56, 0x75, 0x54, 0x66, 0x90,
   602  					0x75, 0x50, 0x75, 0x4e, 0x75, 0x4c, 0x75, 0x4a, 0x75, 0x48, 0x75, 0x46, 0x75, 0x44, 0x75, 0x42, 0x75,
   603  					0x40, 0x75, 0x3e, 0x75, 0x3c, 0x75, 0x3a, 0x75, 0x38, 0x75, 0x36, 0x75, 0x34, 0x66, 0x90, 0x75, 0x30,
   604  					0x75, 0x2e, 0x75, 0x2c, 0x75, 0x2a, 0x75, 0x28, 0x75, 0x26, 0x75, 0x24, 0x75, 0x22, 0x75, 0x20, 0x75,
   605  					0x1e, 0x75, 0x1c, 0x75, 0x1a, 0x75, 0x18, 0x75, 0x16, 0x75, 0x14, 0x66, 0x90, 0x75, 0x10, 0x75, 0xe,
   606  					0x75, 0xc, 0x75, 0xa, 0x75, 0x8, 0x75, 0x6, 0x75, 0x4, 0x75, 0x2, 0x75, 0x0, 0xc3,
   607  				},
   608  			},
   609  			{
   610  				backward: false, jmpInst: JPC, exp: []byte{
   611  					0xc3, 0xf, 0x8b, 0x2b, 0x2, 0x0, 0x0, 0xf, 0x8b, 0x25, 0x2, 0x0, 0x0, 0xf, 0x8b, 0x1f, 0x2, 0x0,
   612  					0x0, 0xf, 0x8b, 0x19, 0x2, 0x0, 0x0, 0xf, 0x8b, 0x13, 0x2, 0x0, 0x0, 0x90, 0xf, 0x8b, 0xc, 0x2,
   613  					0x0, 0x0, 0xf, 0x8b, 0x6, 0x2, 0x0, 0x0, 0xf, 0x8b, 0x0, 0x2, 0x0, 0x0, 0xf, 0x8b, 0xfa, 0x1,
   614  					0x0, 0x0, 0xf, 0x8b, 0xf4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8b, 0xec, 0x1, 0x0, 0x0, 0xf, 0x8b,
   615  					0xe6, 0x1, 0x0, 0x0, 0xf, 0x8b, 0xe0, 0x1, 0x0, 0x0, 0xf, 0x8b, 0xda, 0x1, 0x0, 0x0, 0xf, 0x8b,
   616  					0xd4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8b, 0xcc, 0x1, 0x0, 0x0, 0xf, 0x8b, 0xc6, 0x1, 0x0, 0x0,
   617  					0xf, 0x8b, 0xc0, 0x1, 0x0, 0x0, 0xf, 0x8b, 0xba, 0x1, 0x0, 0x0, 0xf, 0x8b, 0xb4, 0x1, 0x0, 0x0,
   618  					0x66, 0x90, 0xf, 0x8b, 0xac, 0x1, 0x0, 0x0, 0xf, 0x8b, 0xa6, 0x1, 0x0, 0x0, 0xf, 0x8b, 0xa0, 0x1,
   619  					0x0, 0x0, 0xf, 0x8b, 0x9a, 0x1, 0x0, 0x0, 0xf, 0x8b, 0x94, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8b,
   620  					0x8c, 0x1, 0x0, 0x0, 0xf, 0x8b, 0x86, 0x1, 0x0, 0x0, 0xf, 0x8b, 0x80, 0x1, 0x0, 0x0, 0xf, 0x8b, 0x7a,
   621  					0x1, 0x0, 0x0, 0xf, 0x8b, 0x74, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8b, 0x6c, 0x1, 0x0, 0x0, 0xf, 0x8b,
   622  					0x66, 0x1, 0x0, 0x0, 0xf, 0x8b, 0x60, 0x1, 0x0, 0x0, 0xf, 0x8b, 0x5a, 0x1, 0x0, 0x0, 0xf, 0x8b, 0x54,
   623  					0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8b, 0x4c, 0x1, 0x0, 0x0, 0xf, 0x8b, 0x46, 0x1, 0x0, 0x0, 0xf, 0x8b,
   624  					0x40, 0x1, 0x0, 0x0, 0xf, 0x8b, 0x3a, 0x1, 0x0, 0x0, 0xf, 0x8b, 0x34, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf,
   625  					0x8b, 0x2c, 0x1, 0x0, 0x0, 0xf, 0x8b, 0x26, 0x1, 0x0, 0x0, 0xf, 0x8b, 0x20, 0x1, 0x0, 0x0, 0xf, 0x8b,
   626  					0x1a, 0x1, 0x0, 0x0, 0xf, 0x8b, 0x14, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8b, 0xc, 0x1, 0x0, 0x0, 0xf,
   627  					0x8b, 0x6, 0x1, 0x0, 0x0, 0xf, 0x8b, 0x0, 0x1, 0x0, 0x0, 0xf, 0x8b, 0xfa, 0x0, 0x0, 0x0, 0xf, 0x8b,
   628  					0xf4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8b, 0xec, 0x0, 0x0, 0x0, 0xf, 0x8b, 0xe6, 0x0, 0x0, 0x0, 0xf,
   629  					0x8b, 0xe0, 0x0, 0x0, 0x0, 0xf, 0x8b, 0xda, 0x0, 0x0, 0x0, 0xf, 0x8b, 0xd4, 0x0, 0x0, 0x0, 0x66, 0x90,
   630  					0xf, 0x8b, 0xcc, 0x0, 0x0, 0x0, 0xf, 0x8b, 0xc6, 0x0, 0x0, 0x0, 0xf, 0x8b, 0xc0, 0x0, 0x0, 0x0, 0xf,
   631  					0x8b, 0xba, 0x0, 0x0, 0x0, 0xf, 0x8b, 0xb4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8b, 0xac, 0x0, 0x0, 0x0,
   632  					0xf, 0x8b, 0xa6, 0x0, 0x0, 0x0, 0xf, 0x8b, 0xa0, 0x0, 0x0, 0x0, 0xf, 0x8b, 0x9a, 0x0, 0x0, 0x0, 0xf,
   633  					0x8b, 0x94, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8b, 0x8c, 0x0, 0x0, 0x0, 0xf, 0x8b, 0x86, 0x0, 0x0, 0x0,
   634  					0xf, 0x8b, 0x80, 0x0, 0x0, 0x0, 0x7b, 0x7e, 0x7b, 0x7c, 0x7b, 0x7a, 0x7b, 0x78, 0x7b, 0x76, 0x7b, 0x74,
   635  					0x66, 0x90, 0x7b, 0x70, 0x7b, 0x6e, 0x7b, 0x6c, 0x7b, 0x6a, 0x7b, 0x68, 0x7b, 0x66, 0x7b, 0x64, 0x7b,
   636  					0x62, 0x7b, 0x60, 0x7b, 0x5e, 0x7b, 0x5c, 0x7b, 0x5a, 0x7b, 0x58, 0x7b, 0x56, 0x7b, 0x54, 0x66, 0x90,
   637  					0x7b, 0x50, 0x7b, 0x4e, 0x7b, 0x4c, 0x7b, 0x4a, 0x7b, 0x48, 0x7b, 0x46, 0x7b, 0x44, 0x7b, 0x42, 0x7b,
   638  					0x40, 0x7b, 0x3e, 0x7b, 0x3c, 0x7b, 0x3a, 0x7b, 0x38, 0x7b, 0x36, 0x7b, 0x34, 0x66, 0x90, 0x7b, 0x30,
   639  					0x7b, 0x2e, 0x7b, 0x2c, 0x7b, 0x2a, 0x7b, 0x28, 0x7b, 0x26, 0x7b, 0x24, 0x7b, 0x22, 0x7b, 0x20, 0x7b,
   640  					0x1e, 0x7b, 0x1c, 0x7b, 0x1a, 0x7b, 0x18, 0x7b, 0x16, 0x7b, 0x14, 0x66, 0x90, 0x7b, 0x10, 0x7b, 0xe,
   641  					0x7b, 0xc, 0x7b, 0xa, 0x7b, 0x8, 0x7b, 0x6, 0x7b, 0x4, 0x7b, 0x2, 0x7b, 0x0, 0xc3,
   642  				},
   643  			},
   644  			{
   645  				backward: false, jmpInst: JPS, exp: []byte{
   646  					0xc3, 0xf, 0x8a, 0x2b, 0x2, 0x0, 0x0, 0xf, 0x8a, 0x25, 0x2, 0x0, 0x0, 0xf, 0x8a, 0x1f, 0x2, 0x0,
   647  					0x0, 0xf, 0x8a, 0x19, 0x2, 0x0, 0x0, 0xf, 0x8a, 0x13, 0x2, 0x0, 0x0, 0x90, 0xf, 0x8a, 0xc, 0x2,
   648  					0x0, 0x0, 0xf, 0x8a, 0x6, 0x2, 0x0, 0x0, 0xf, 0x8a, 0x0, 0x2, 0x0, 0x0, 0xf, 0x8a, 0xfa, 0x1,
   649  					0x0, 0x0, 0xf, 0x8a, 0xf4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8a, 0xec, 0x1, 0x0, 0x0, 0xf, 0x8a,
   650  					0xe6, 0x1, 0x0, 0x0, 0xf, 0x8a, 0xe0, 0x1, 0x0, 0x0, 0xf, 0x8a, 0xda, 0x1, 0x0, 0x0, 0xf, 0x8a,
   651  					0xd4, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8a, 0xcc, 0x1, 0x0, 0x0, 0xf, 0x8a, 0xc6, 0x1, 0x0, 0x0,
   652  					0xf, 0x8a, 0xc0, 0x1, 0x0, 0x0, 0xf, 0x8a, 0xba, 0x1, 0x0, 0x0, 0xf, 0x8a, 0xb4, 0x1, 0x0, 0x0,
   653  					0x66, 0x90, 0xf, 0x8a, 0xac, 0x1, 0x0, 0x0, 0xf, 0x8a, 0xa6, 0x1, 0x0, 0x0, 0xf, 0x8a, 0xa0, 0x1,
   654  					0x0, 0x0, 0xf, 0x8a, 0x9a, 0x1, 0x0, 0x0, 0xf, 0x8a, 0x94, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8a,
   655  					0x8c, 0x1, 0x0, 0x0, 0xf, 0x8a, 0x86, 0x1, 0x0, 0x0, 0xf, 0x8a, 0x80, 0x1, 0x0, 0x0, 0xf, 0x8a, 0x7a,
   656  					0x1, 0x0, 0x0, 0xf, 0x8a, 0x74, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8a, 0x6c, 0x1, 0x0, 0x0, 0xf, 0x8a,
   657  					0x66, 0x1, 0x0, 0x0, 0xf, 0x8a, 0x60, 0x1, 0x0, 0x0, 0xf, 0x8a, 0x5a, 0x1, 0x0, 0x0, 0xf, 0x8a, 0x54,
   658  					0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8a, 0x4c, 0x1, 0x0, 0x0, 0xf, 0x8a, 0x46, 0x1, 0x0, 0x0, 0xf, 0x8a,
   659  					0x40, 0x1, 0x0, 0x0, 0xf, 0x8a, 0x3a, 0x1, 0x0, 0x0, 0xf, 0x8a, 0x34, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf,
   660  					0x8a, 0x2c, 0x1, 0x0, 0x0, 0xf, 0x8a, 0x26, 0x1, 0x0, 0x0, 0xf, 0x8a, 0x20, 0x1, 0x0, 0x0, 0xf, 0x8a,
   661  					0x1a, 0x1, 0x0, 0x0, 0xf, 0x8a, 0x14, 0x1, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8a, 0xc, 0x1, 0x0, 0x0, 0xf,
   662  					0x8a, 0x6, 0x1, 0x0, 0x0, 0xf, 0x8a, 0x0, 0x1, 0x0, 0x0, 0xf, 0x8a, 0xfa, 0x0, 0x0, 0x0, 0xf, 0x8a,
   663  					0xf4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8a, 0xec, 0x0, 0x0, 0x0, 0xf, 0x8a, 0xe6, 0x0, 0x0, 0x0, 0xf,
   664  					0x8a, 0xe0, 0x0, 0x0, 0x0, 0xf, 0x8a, 0xda, 0x0, 0x0, 0x0, 0xf, 0x8a, 0xd4, 0x0, 0x0, 0x0, 0x66, 0x90,
   665  					0xf, 0x8a, 0xcc, 0x0, 0x0, 0x0, 0xf, 0x8a, 0xc6, 0x0, 0x0, 0x0, 0xf, 0x8a, 0xc0, 0x0, 0x0, 0x0, 0xf,
   666  					0x8a, 0xba, 0x0, 0x0, 0x0, 0xf, 0x8a, 0xb4, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8a, 0xac, 0x0, 0x0, 0x0,
   667  					0xf, 0x8a, 0xa6, 0x0, 0x0, 0x0, 0xf, 0x8a, 0xa0, 0x0, 0x0, 0x0, 0xf, 0x8a, 0x9a, 0x0, 0x0, 0x0, 0xf,
   668  					0x8a, 0x94, 0x0, 0x0, 0x0, 0x66, 0x90, 0xf, 0x8a, 0x8c, 0x0, 0x0, 0x0, 0xf, 0x8a, 0x86, 0x0, 0x0, 0x0,
   669  					0xf, 0x8a, 0x80, 0x0, 0x0, 0x0, 0x7a, 0x7e, 0x7a, 0x7c, 0x7a, 0x7a, 0x7a, 0x78, 0x7a, 0x76, 0x7a, 0x74,
   670  					0x66, 0x90, 0x7a, 0x70, 0x7a, 0x6e, 0x7a, 0x6c, 0x7a, 0x6a, 0x7a, 0x68, 0x7a, 0x66, 0x7a, 0x64, 0x7a,
   671  					0x62, 0x7a, 0x60, 0x7a, 0x5e, 0x7a, 0x5c, 0x7a, 0x5a, 0x7a, 0x58, 0x7a, 0x56, 0x7a, 0x54, 0x66, 0x90,
   672  					0x7a, 0x50, 0x7a, 0x4e, 0x7a, 0x4c, 0x7a, 0x4a, 0x7a, 0x48, 0x7a, 0x46, 0x7a, 0x44, 0x7a, 0x42, 0x7a,
   673  					0x40, 0x7a, 0x3e, 0x7a, 0x3c, 0x7a, 0x3a, 0x7a, 0x38, 0x7a, 0x36, 0x7a, 0x34, 0x66, 0x90, 0x7a, 0x30,
   674  					0x7a, 0x2e, 0x7a, 0x2c, 0x7a, 0x2a, 0x7a, 0x28, 0x7a, 0x26, 0x7a, 0x24, 0x7a, 0x22, 0x7a, 0x20, 0x7a,
   675  					0x1e, 0x7a, 0x1c, 0x7a, 0x1a, 0x7a, 0x18, 0x7a, 0x16, 0x7a, 0x14, 0x66, 0x90, 0x7a, 0x10, 0x7a, 0xe,
   676  					0x7a, 0xc, 0x7a, 0xa, 0x7a, 0x8, 0x7a, 0x6, 0x7a, 0x4, 0x7a, 0x2, 0x7a, 0x0, 0xc3,
   677  				},
   678  			},
   679  		}
   680  
   681  		code := asm.CodeSegment{}
   682  		defer func() { require.NoError(t, code.Unmap()) }()
   683  
   684  		for _, tc := range tests {
   685  			t.Run(fmt.Sprintf("%s/backward=%v", InstructionName(tc.jmpInst), tc.backward), func(t *testing.T) {
   686  				a := NewAssembler()
   687  
   688  				head := a.CompileStandAlone(RET)
   689  				var jmps []asm.Node
   690  				for i := 0; i < 128; i++ { // Large enough so that this includes long jump.
   691  					jmps = append(jmps, a.CompileJump(tc.jmpInst))
   692  				}
   693  				tail := a.CompileStandAlone(RET)
   694  
   695  				for _, jmp := range jmps {
   696  					if tc.backward {
   697  						jmp.AssignJumpTarget(head)
   698  					} else {
   699  						jmp.AssignJumpTarget(tail)
   700  					}
   701  				}
   702  
   703  				buf := code.NextCodeSection()
   704  				err := a.Assemble(buf)
   705  				require.NoError(t, err)
   706  
   707  				actual := buf.Bytes()
   708  				require.Equal(t, tc.exp, actual)
   709  			})
   710  		}
   711  	})
   712  }