cheat-engine/DBKKernel/amd64/dbkfunca.asm

161 lines
1.7 KiB
NASM

;RCX: 1st integer argument
;RDX: 2nd integer argument
;R8: 3rd integer argument
;R9: 4th integer argument
;I should probably start converting to inrinsics
_TEXT SEGMENT 'CODE'
PUBLIC getCS
getCS:
mov ax,cs
ret
PUBLIC getSS
getSS:
mov ax,ss
ret
PUBLIC getDS
getDS:
mov ax,ds
ret
PUBLIC getES
getES:
mov ax,es
ret
PUBLIC getFS
getFS:
mov ax,fs
ret
PUBLIC getGS
getGS:
mov ax,gs
ret
PUBLIC GetTR
GetTR:
STR AX
ret
PUBLIC GetLDT
GetLDT:
SLDT ax
ret
PUBLIC GetGDT
GetGDT:
SGDT [rcx]
ret
PUBLIC _fxsave
_fxsave:
fxsave [rcx]
ret
PUBLIC getRSP
getRSP:
mov rax,rsp
add rax,8 ;undo the call push
ret
PUBLIC getRBP
getRBP:
push rbp
pop rax
ret
PUBLIC getRAX
getRAX:
ret
PUBLIC getRBX
getRBX:
mov rax,rbx
ret
PUBLIC getRCX
getRCX:
mov rax,rcx
ret
PUBLIC getRDX
getRDX:
mov rax,rdx
ret
PUBLIC getRSI
getRSI:
mov rax,rsi
ret
PUBLIC getRDI
getRDI:
mov rax,rdi
ret
PUBLIC getR8
getR8:
mov rax,r8
ret
PUBLIC getR9
getR9:
mov rax,r9
ret
PUBLIC getR10
getR10:
mov rax,r10
ret
PUBLIC getR11
getR11:
mov rax,r11
ret
PUBLIC getR12
getR12:
mov rax,r12
ret
PUBLIC getR13
getR13:
mov rax,r13
ret
PUBLIC getR14
getR14:
mov rax,r14
ret
PUBLIC getR15
getR15:
mov rax,r15
ret
PUBLIC getAccessRights
getAccessRights:
xor rax,rax
lar rax,rcx
jnz getAccessRights_invalid
shr rax,8
and rax,0f0ffh
ret
getAccessRights_invalid:
mov rax,010000h
ret
PUBLIC getSegmentLimit
getSegmentLimit:
xor rax,rax
lsl rax,rcx
ret
_TEXT ENDS
END