- xor ax, ax ; xor eax, eax\r
- mov eax, ss ; mov ax, ss\r
- lea bp, [esp + IA32_REGS.size]\r
- ;\r
- ; rsi in the following 2 instructions is indeed bp in 16-bit code\r
- ;\r
- mov [rsi - IA32_REGS.size + IA32_REGS._ESP], bp\r
- DB 66h\r
- mov ebx, [rsi - IA32_REGS.size + IA32_REGS._EIP]\r
- shl ax, 4 ; shl eax, 4\r
- add bp, ax ; add ebp, eax\r
- mov ax, cs\r
- shl ax, 4\r
- lea ax, [eax + ebx + (.64BitCode - .Base)]\r
- DB 66h, 2eh, 89h, 87h ; mov cs:[bx + (.64Eip - .Base)], eax\r
- DW .64Eip - .Base\r
+ xor eax, eax\r
+ mov ax, ss\r
+ lea ebp, [esp + IA32_REGS.size]\r
+ mov [bp - IA32_REGS.size + IA32_REGS._ESP], ebp\r
+ mov ebx, [bp - IA32_REGS.size + IA32_REGS._EIP]\r
+ shl eax, 4 ; shl eax, 4\r
+ add ebp, eax ; add ebp, eax\r
+ mov eax, cs\r
+ shl eax, 4\r
+ lea eax, [eax + ebx + (.64BitCode - .Base)]\r
+ mov [cs:bx + (.64Eip - .Base)], eax\r