Reading the Windows OS version from the registry :
include GetOSver64.inc
.data
buffsize dd 32
subKey db 'SOFTWARE\Microsoft\Windows NT\CurrentVersion',0
valName db 'CurrentVersion',0
.data?
hKey dq ?
buffer db 32 dup(?)
.code
start PROC
sub rsp,6*8+8
invoke RegOpenKeyEx,HKEY_LOCAL_MACHINE,ADDR subKey,0,\
KEY_ALL_ACCESS,ADDR hKey
xor r8,r8
invoke RegQueryValueEx,hKey,ADDR valName,r8,\
r8,ADDR buffer,ADDR buffsize
invoke StdOut,ADDR buffer
invoke RegCloseKey,hKey
invoke ExitProcess,0
start ENDP
StdOut PROC lpszText:QWORD
LOCAL hOutPut:QWORD
LOCAL bWritten:QWORD
LOCAL sl:QWORD
LOCAL _lpszText:QWORD
sub rsp,5*8+8
mov _lpszText,rcx
invoke GetStdHandle,STD_OUTPUT_HANDLE
mov hOutPut,rax
invoke lstrlen,_lpszText
mov sl,rax
invoke WriteFile,hOutPut,_lpszText,sl,ADDR bWritten,0
mov rax,bWritten
ret
StdOut ENDP
END