[Info]
InfoT=This program does not use all of the available registery functions or all of the capabilities of each function, it only uses twelve of the most common functions and some of their capabilities.

[Function]
Function 01=;---------- [Open or create a registry key] ----------
Function 02=;---------- [Open an existing registry key] ----------
Function 03=;---------- [Set a dword value to the registry key] ----------
Function 04=;---------- [Get a dword value from the registry key] ----------
Function 05=;---------- [Set a string value to the registry key] ----------
Function 06=;---------- [Get a string value from the registry key] ----------
Function 07=;---------- [Set a binary value to the registry key] ----------
Function 08=;---------- [Get a binary value from the registry key] ----------
Function 09=;---------- [Get the number of value entries in the registry key] ---------- 
Function 10=;---------- [Get the longest value data length in the registry key] ---------- 
Function 11=;---------- [Open or create a registry Subkey] ----------
Function 12=;---------- [Set four string values to the registry Subkey] ----------
Function 13=;---------- [Enumerate the registry Subkey] ----------
Function 14=;---------- [Delete the registry Subkey] ----------
Function 15=;---------- [Close the registry Subkey] ----------
Function 16=;---------- [Delete the registry key] ----------
Function 17=;---------- [Close the registry key] ----------

[Code]
Code 01='INVOKE     RegCreateKeyEx, HKEY_CURRENT_USER, addr szTestKey, 0, addr szREGSZ, 0,\<>           KEY_WRITE or KEY_READ, 0, addr hKey, addr lpdwDisp<>.if eax == ERROR_SUCCESS'

Code 02='INVOKE     RegOpenKeyEx, HKEY_CURRENT_USER, addr szTestKey, 0,\<>           KEY_WRITE or KEY_READ, addr hKey<>.if eax == ERROR_SUCCESS'

Code 03='   mov     lpcbData, 4<>INVOKE     RegSetValueEx, hKey, addr szHandle, 0, REG_DWORD, addr hwnd, lpcbData<>.if eax == ERROR_SUCCESS'

Code 04='   mov     lpcbData, 4<>INVOKE     RegQueryValueEx, hKey, addr szHandle, 0, addr lpType, addr DecVal,\<>           addr lpcbData<>.if eax == ERROR_SUCCESS'

Code 05='INVOKE     lstrlen, addr szDay<>   mov     lpcbData, eax<>INVOKE     RegSetValueEx, hKey, addr szDayName, 0, REG_SZ, addr szDay, lpcbData<>.if eax == ERROR_SUCCESS'

Code 06='   mov     lpcbData, 250<>INVOKE     RegQueryValueEx, hKey, addr szDayName, 0, addr szREGSZ, addr szBuff,\<>           addr lpcbData<>.if eax == ERROR_SUCCESS'

Code 07='   mov     lpcbData, 10<>INVOKE     RegSetValueEx, hKey, addr szBinary, 0, REG_BINARY, addr BinVal, lpcbData<>.if eax == ERROR_SUCCESS'

Code 08='   mov     lpcbData, 10<>INVOKE     RegQueryValueEx, hKey, addr szBinary, 0, addr lpType, addr szBuff,\<>           addr lpcbData<>.if eax == ERROR_SUCCESS'

Code 09='INVOKE     RegQueryInfoKey, hKey, 0, 0, 0, 0, 0, 0, addr lpcValues, 0, 0, 0, 0<>.if eax == ERROR_SUCCESS'

Code 10='INVOKE     RegQueryInfoKey, hKey, 0, 0, 0, 0, 0, 0, 0, 0, addr lpcbMaxValueLen, 0,0<>.if eax == ERROR_SUCCESS'

Code 11='INVOKE     RegCreateKeyEx, HKEY_CURRENT_USER, addr szSubKey, 0, addr szREGSZ, 0,\<>           KEY_WRITE or KEY_READ, 0, addr hKey, addr lpdwDisp<>.if eax == ERROR_SUCCESS'

Code 12='INVOKE     lstrlen, addr szItemT<>   mov     lpcbData, eax<>INVOKE     RegSetValueEx, hKeyS, addr szItem, 0, REG_SZ, addr szItemT, lpcbData<>.if eax == ERROR_SUCCESS'

Code 13='   mov     lpcbValueName, 8<>   mov     lpcbData, 25<>INVOKE     RegEnumValue, hKeyS, Cnt, addr szBuff1, addr lpcbValueName, 0,\<>           addr szREGSZ, addr szBuff2, addr lpcbData<>.if eax == ERROR_NO_MORE_ITEMS'

Code 14='INVOKE     RegDeleteKey, HKEY_CURRENT_USER, addr szSubKey<>.if eax == ERROR_SUCCESS'

Code 15='INVOKE     RegCloseKey, hKeyS<>.if eax == ERROR_SUCCESS'

Code 16='INVOKE     RegDeleteKey, HKEY_CURRENT_USER, addr szTestKey<>.if eax == ERROR_SUCCESS'

Code 17='INVOKE     RegCloseKey, hKey<>.if eax == ERROR_SUCCESS'




