Source file: /~heha/hsn/switch_mode.zip/switch_cs.asm

global switch_cs,check_mode,_sgdt
_sgdt:	enter	16,0
	sgdt	[rbp-16]	; legt Limit und Basisasdresse ab
	mov	rax,[rbp-14]
	leave
	ret
switch_cs:
	enter	8,0
	lea	eax,[rel L1]
	mov	[rbp-8],eax	;32-Bit-Offset (hoffentlich)
	mov	[rbp-4],ecx	;Code-Selektor (0x23?)
	call	far dword[rbp-8]
	leave
	ret

bits 32
L1:	call	edx
	retf
bits 64

; returns false for 32-bit mode; true for 64-bit mode
check_mode:
	xor	eax, eax
; In 32-bit mode, this instruction is executed as
; inc eax; test eax, eax
	test	rax, rax
	setz	al
	ret
Detected encoding: ASCII (7 bit)2