bits 16 swap: push bx movzx bx,dl mov dl,[cs:bx+(table-$$)] pop bx .jmp: jmp 0:0 nop nop install: ;; DS = CS, ES = 0 mov edi,[es:si+4*0x13] mov [swap.jmp+1],edi mov di,[es:0x413] dec di mov [es:0x413],di shl edi,16+6 mov [es:si+4*0x13],edi shr edi,16 mov es,di xor di,di rep movsd mov si,0 mov di,0 mov ds,si mov es,di mov ecx,0 mov esi,0 mov edi,0 jmp 0:0 align 16 table: