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: