From 5155b8fa196ddf057945eac6891a91491b053cd3 Mon Sep 17 00:00:00 2001
From: Jason Hiser <jdhiser@gmail.com>
Date: Sun, 3 Feb 2019 12:07:43 -0500
Subject: [PATCH] adding irdb-deep to irdb-sdk

Former-commit-id: 62b1c78a41e0436d450a8c86a72380f7f1d68ac7
---
 libMEDSannotation/SConscript                  |   1 +
 .../include/MEDS_FuncPrototypeAnnotation.hpp  |   4 +-
 libMEDSannotation/include/MEDS_Register.hpp   |  25 +-
 .../src/MEDS_FPTRShadowAnnotation.cpp         |   6 +-
 .../src/MEDS_InstructionCheckAnnotation.cpp   |   4 +-
 libMEDSannotation/src/MEDS_Register.cpp       | 708 +++++++++---------
 6 files changed, 378 insertions(+), 370 deletions(-)

diff --git a/libMEDSannotation/SConscript b/libMEDSannotation/SConscript
index 8ca4d129e..cb89f07ae 100644
--- a/libMEDSannotation/SConscript
+++ b/libMEDSannotation/SConscript
@@ -22,6 +22,7 @@ files=  '''
 	'''
 cpppath=''' 
 	./include/
+	$IRDB_SDK/include/
 	'''
 
 #CFLAGS="-fPIC  "
diff --git a/libMEDSannotation/include/MEDS_FuncPrototypeAnnotation.hpp b/libMEDSannotation/include/MEDS_FuncPrototypeAnnotation.hpp
index bfb5df579..4e94a0200 100644
--- a/libMEDSannotation/include/MEDS_FuncPrototypeAnnotation.hpp
+++ b/libMEDSannotation/include/MEDS_FuncPrototypeAnnotation.hpp
@@ -63,8 +63,8 @@ typedef enum {
 // wrapper class around MEDS typing system
 class MEDS_Arg {
 	public:
-		MEDS_Arg() { m_type = MEDS_TYPE_UNKNOWN; m_reg = rn_UNKNOWN; }
-		MEDS_Arg(int p_type, RegisterName p_reg = rn_UNKNOWN) { m_type = (MEDS_ArgType) p_type; m_reg = p_reg; }
+		MEDS_Arg() { m_type = MEDS_TYPE_UNKNOWN; m_reg = IRDB_SDK::rn_UNKNOWN; }
+		MEDS_Arg(int p_type, RegisterName p_reg = IRDB_SDK::rn_UNKNOWN) { m_type = (MEDS_ArgType) p_type; m_reg = p_reg; }
 		virtual ~MEDS_Arg() {}
 		bool isNumericType() { return m_type == MEDS_TYPE_NUMERIC; }
 		bool isPointerType() { 
diff --git a/libMEDSannotation/include/MEDS_Register.hpp b/libMEDSannotation/include/MEDS_Register.hpp
index 3339850be..ae0ad88d9 100644
--- a/libMEDSannotation/include/MEDS_Register.hpp
+++ b/libMEDSannotation/include/MEDS_Register.hpp
@@ -23,25 +23,32 @@
 
 #include <string>
 #include <set>
+#include <irdb-util>
 
 namespace MEDS_Annotation 
 {
 
 
-
+#if 0
 enum RegisterName 
 {
-	rn_UNKNOWN, 
-	rn_EFLAGS, 
-	rn_RIP,
-	rn_EAX, rn_EBX, rn_ECX, rn_EDX, rn_ESI, rn_EDI, rn_EBP, rn_ESP, rn_R8D, rn_R9D, rn_R10D, rn_R11D, rn_R12D, rn_R13D, rn_R14D, rn_R15D, 
-	rn_RAX, rn_RBX, rn_RCX, rn_RDX, rn_RBP, rn_RSP, rn_RSI, rn_RDI, rn_R8,  rn_R9,  rn_R10,  rn_R11,  rn_R12,  rn_R13,  rn_R14,  rn_R15, 
-	rn_AX, rn_BX, rn_CX, rn_DX, rn_BP, rn_SP, rn_SI, rn_DI, rn_R8W, rn_R9W, rn_R10W, rn_R11W, rn_R12W, rn_R13W, rn_R14W, rn_R15W, 
-	rn_AH, rn_BH, rn_CH, rn_DH, rn_SIH, rn_DIH, rn_BPH, rn_SPH, /* 'H' versions of regs only exist for lower 8 regs */ 
-	rn_AL, rn_BL, rn_CL, rn_DL, rn_SIL, rn_DIL, rn_BPL, rn_SPL, rn_R8B, rn_R9B, rn_R10B, rn_R11B, rn_R12B, rn_R13B, rn_R14B, rn_R15B, 
+	IRDB_SDK::rn_UNKNOWN, 
+	IRDB_SDK::rn_EFLAGS, 
+	IRDB_SDK::rn_RIP,
+	IRDB_SDK::rn_EAX, IRDB_SDK::rn_EBX, IRDB_SDK::rn_ECX, IRDB_SDK::rn_EDX, IRDB_SDK::rn_ESI, IRDB_SDK::rn_EDI, IRDB_SDK::rn_EBP, IRDB_SDK::rn_ESP, IRDB_SDK::rn_R8D, IRDB_SDK::rn_R9D, IRDB_SDK::rn_R10D, IRDB_SDK::rn_R11D, IRDB_SDK::rn_R12D, IRDB_SDK::rn_R13D, IRDB_SDK::rn_R14D, IRDB_SDK::rn_R15D, 
+	IRDB_SDK::rn_RAX, IRDB_SDK::rn_RBX, IRDB_SDK::rn_RCX, IRDB_SDK::rn_RDX, IRDB_SDK::rn_RBP, IRDB_SDK::rn_RSP, IRDB_SDK::rn_RSI, IRDB_SDK::rn_RDI, IRDB_SDK::rn_R8,  IRDB_SDK::rn_R9,  IRDB_SDK::rn_R10,  IRDB_SDK::rn_R11,  IRDB_SDK::rn_R12,  IRDB_SDK::rn_R13,  IRDB_SDK::rn_R14,  IRDB_SDK::rn_R15, 
+	IRDB_SDK::rn_AX, IRDB_SDK::rn_BX, IRDB_SDK::rn_CX, IRDB_SDK::rn_DX, IRDB_SDK::rn_BP, IRDB_SDK::rn_SP, IRDB_SDK::rn_SI, IRDB_SDK::rn_DI, IRDB_SDK::rn_R8W, IRDB_SDK::rn_R9W, IRDB_SDK::rn_R10W, IRDB_SDK::rn_R11W, IRDB_SDK::rn_R12W, IRDB_SDK::rn_R13W, IRDB_SDK::rn_R14W, IRDB_SDK::rn_R15W, 
+	IRDB_SDK::rn_AH, IRDB_SDK::rn_BH, IRDB_SDK::rn_CH, IRDB_SDK::rn_DH, IRDB_SDK::rn_SIH, IRDB_SDK::rn_DIH, IRDB_SDK::rn_BPH, IRDB_SDK::rn_SPH, /* 'H' versions of regs only exist for lower 8 regs */ 
+	IRDB_SDK::rn_AL, IRDB_SDK::rn_BL, IRDB_SDK::rn_CL, IRDB_SDK::rn_DL, IRDB_SDK::rn_SIL, IRDB_SDK::rn_DIL, IRDB_SDK::rn_BPL, IRDB_SDK::rn_SPL, IRDB_SDK::rn_R8B, IRDB_SDK::rn_R9B, IRDB_SDK::rn_R10B, IRDB_SDK::rn_R11B, IRDB_SDK::rn_R12B, IRDB_SDK::rn_R13B, IRDB_SDK::rn_R14B, IRDB_SDK::rn_R15B, 
 };
 
 typedef std::set<RegisterName> RegisterSet_t;
+#endif
+using RegisterName   = IRDB_SDK::RegisterID;
+using RegisterName_t = IRDB_SDK::RegisterID_t;
+using RegisterSet_t  = std::set<RegisterName_t>;
+
+
 
 
 class Register 
diff --git a/libMEDSannotation/src/MEDS_FPTRShadowAnnotation.cpp b/libMEDSannotation/src/MEDS_FPTRShadowAnnotation.cpp
index e0f8ad4b5..017efc30d 100644
--- a/libMEDSannotation/src/MEDS_FPTRShadowAnnotation.cpp
+++ b/libMEDSannotation/src/MEDS_FPTRShadowAnnotation.cpp
@@ -189,7 +189,7 @@ long long MEDS_FPTRShadowAnnotation::getConstantValue(bool &p_valid) const
 // 80822cc      3 INSTR FPTRSHADOW  EAX SHADOWID 6
 bool MEDS_FPTRShadowAnnotation::isRegister() const
 {
-	return Register::getRegister(getExpression()) != rn_UNKNOWN;
+	return Register::getRegister(getExpression()) != IRDB_SDK::rn_UNKNOWN;
 }
 
 // 805829d      3 INSTR FPTRCHECK  [EBP-40] SHADOWID 5
@@ -207,7 +207,7 @@ const RegisterName MEDS_FPTRShadowAnnotation::getRegister() const
 	}
 	else
 	{
-		return rn_UNKNOWN;
+		return IRDB_SDK::rn_UNKNOWN;
 	}
 }
 
@@ -226,7 +226,7 @@ uintptr_t MEDS_FPTRShadowAnnotation::computeRIPAddress()
 
 	parseRegister(getExpression().c_str(), &reg, &offset);
 
-	if (reg == rn_RIP) 
+	if (reg == IRDB_SDK::rn_RIP) 
 	{
 		return getVirtualOffset().getOffset() + getInstructionSize() + offset;
 	}
diff --git a/libMEDSannotation/src/MEDS_InstructionCheckAnnotation.cpp b/libMEDSannotation/src/MEDS_InstructionCheckAnnotation.cpp
index cbb505f27..719ebb5f7 100644
--- a/libMEDSannotation/src/MEDS_InstructionCheckAnnotation.cpp
+++ b/libMEDSannotation/src/MEDS_InstructionCheckAnnotation.cpp
@@ -64,8 +64,8 @@ void MEDS_InstructionCheckAnnotation::init()
 	m_bitWidth = -1;
 	m_truncationFromWidth = -1;
 	m_truncationToWidth = -1;
-	m_register = rn_UNKNOWN;
-	m_register2 = rn_UNKNOWN;
+	m_register = IRDB_SDK::rn_UNKNOWN;
+	m_register2 = IRDB_SDK::rn_UNKNOWN;
 	m_stackOffset = -1;
 	m_objectSize = -1;
 	m_isEspOffset = false;
diff --git a/libMEDSannotation/src/MEDS_Register.cpp b/libMEDSannotation/src/MEDS_Register.cpp
index 57aab2f4b..36741f094 100644
--- a/libMEDSannotation/src/MEDS_Register.cpp
+++ b/libMEDSannotation/src/MEDS_Register.cpp
@@ -35,7 +35,7 @@ RegisterName Register::getRegister(char *p_reg)
 
 bool Register::isValidRegister(std::string p_reg)
 {
-	return getRegister(p_reg) != rn_UNKNOWN;
+	return getRegister(p_reg) != IRDB_SDK::rn_UNKNOWN;
 }
 
 bool Register::isValidRegister(const RegisterName p_reg)
@@ -46,263 +46,263 @@ bool Register::isValidRegister(const RegisterName p_reg)
 RegisterName Register::getRegister(std::string p_reg)
 {
 	if (strcasecmp(p_reg.c_str(), "EFLAGS") ==0)
-		return rn_EFLAGS;
+		return IRDB_SDK::rn_EFLAGS;
 	else if (strcasecmp(p_reg.c_str(), "RAX") == 0)
-		return rn_RAX;
+		return IRDB_SDK::rn_RAX;
 	else if (strcasecmp(p_reg.c_str(), "RBX") == 0)
-		return rn_RBX;
+		return IRDB_SDK::rn_RBX;
 	else if (strcasecmp(p_reg.c_str(), "RCX") == 0)
-		return rn_RCX;
+		return IRDB_SDK::rn_RCX;
 	else if (strcasecmp(p_reg.c_str(), "RDX") == 0)
-		return rn_RDX;
+		return IRDB_SDK::rn_RDX;
 	else if (strcasecmp(p_reg.c_str(), "RSI") == 0)
-		return rn_RSI;
+		return IRDB_SDK::rn_RSI;
 	else if (strcasecmp(p_reg.c_str(), "RDI") == 0)
-		return rn_RDI;
+		return IRDB_SDK::rn_RDI;
 	else if (strcasecmp(p_reg.c_str(), "RBP") == 0)
-		return rn_RBP;
+		return IRDB_SDK::rn_RBP;
 	else if (strcasecmp(p_reg.c_str(), "RSP") == 0)
-		return rn_RSP;
+		return IRDB_SDK::rn_RSP;
 	else if (strcasecmp(p_reg.c_str(), "R8") == 0)
-		return rn_R8;
+		return IRDB_SDK::rn_R8;
 	else if (strcasecmp(p_reg.c_str(), "R9") == 0)
-		return rn_R9;
+		return IRDB_SDK::rn_R9;
 	else if (strcasecmp(p_reg.c_str(), "R10") == 0)
-		return rn_R10;
+		return IRDB_SDK::rn_R10;
 	else if (strcasecmp(p_reg.c_str(), "R11") == 0)
-		return rn_R11;
+		return IRDB_SDK::rn_R11;
 	else if (strcasecmp(p_reg.c_str(), "R12") == 0)
-		return rn_R12;
+		return IRDB_SDK::rn_R12;
 	else if (strcasecmp(p_reg.c_str(), "R13") == 0)
-		return rn_R13;
+		return IRDB_SDK::rn_R13;
 	else if (strcasecmp(p_reg.c_str(), "R14") == 0)
-		return rn_R14;
+		return IRDB_SDK::rn_R14;
 	else if (strcasecmp(p_reg.c_str(), "R15") == 0)
-		return rn_R15;
+		return IRDB_SDK::rn_R15;
 	else if (strcasecmp(p_reg.c_str(), "RIP") == 0)
-		return rn_RIP;
+		return IRDB_SDK::rn_RIP;
 
 	else if (strcasecmp(p_reg.c_str(), "EAX") == 0)
-		return rn_EAX;
+		return IRDB_SDK::rn_EAX;
 	else if (strcasecmp(p_reg.c_str(), "EBX") == 0)
-		return rn_EBX;
+		return IRDB_SDK::rn_EBX;
 	else if (strcasecmp(p_reg.c_str(), "ECX") == 0)
-		return rn_ECX;
+		return IRDB_SDK::rn_ECX;
 	else if (strcasecmp(p_reg.c_str(), "EDX") == 0)
-		return rn_EDX;
+		return IRDB_SDK::rn_EDX;
 	else if (strcasecmp(p_reg.c_str(), "ESI") == 0)
-		return rn_ESI;
+		return IRDB_SDK::rn_ESI;
 	else if (strcasecmp(p_reg.c_str(), "EDI") == 0)
-		return rn_EDI;
+		return IRDB_SDK::rn_EDI;
 	else if (strcasecmp(p_reg.c_str(), "EBP") == 0)
-		return rn_EBP;
+		return IRDB_SDK::rn_EBP;
 	else if (strcasecmp(p_reg.c_str(), "ESP") == 0)
-		return rn_ESP;
+		return IRDB_SDK::rn_ESP;
 	else if (strcasecmp(p_reg.c_str(), "R8D") == 0)
-		return rn_R8D;
+		return IRDB_SDK::rn_R8D;
 	else if (strcasecmp(p_reg.c_str(), "R9D") == 0)
-		return rn_R9D;
+		return IRDB_SDK::rn_R9D;
 	else if (strcasecmp(p_reg.c_str(), "R10D") == 0)
-		return rn_R10D;
+		return IRDB_SDK::rn_R10D;
 	else if (strcasecmp(p_reg.c_str(), "R11D") == 0)
-		return rn_R11D;
+		return IRDB_SDK::rn_R11D;
 	else if (strcasecmp(p_reg.c_str(), "R12D") == 0)
-		return rn_R12D;
+		return IRDB_SDK::rn_R12D;
 	else if (strcasecmp(p_reg.c_str(), "R13D") == 0)
-		return rn_R13D;
+		return IRDB_SDK::rn_R13D;
 	else if (strcasecmp(p_reg.c_str(), "R14D") == 0)
-		return rn_R14D;
+		return IRDB_SDK::rn_R14D;
 	else if (strcasecmp(p_reg.c_str(), "R15D") == 0)
-		return rn_R15D;
+		return IRDB_SDK::rn_R15D;
 
 	else if (strcasecmp(p_reg.c_str(), "AX") == 0)
-		return rn_AX;
+		return IRDB_SDK::rn_AX;
 	else if (strcasecmp(p_reg.c_str(), "BX") == 0)
-		return rn_BX;
+		return IRDB_SDK::rn_BX;
 	else if (strcasecmp(p_reg.c_str(), "CX") == 0)
-		return rn_CX;
+		return IRDB_SDK::rn_CX;
 	else if (strcasecmp(p_reg.c_str(), "DX") == 0)
-		return rn_DX;
+		return IRDB_SDK::rn_DX;
 	else if (strcasecmp(p_reg.c_str(), "BP") == 0)
-		return rn_BP;
+		return IRDB_SDK::rn_BP;
 	else if (strcasecmp(p_reg.c_str(), "SP") == 0)
-		return rn_SP;
+		return IRDB_SDK::rn_SP;
 	else if (strcasecmp(p_reg.c_str(), "SI") == 0)
-		return rn_SI;
+		return IRDB_SDK::rn_SI;
 	else if (strcasecmp(p_reg.c_str(), "DI") == 0)
-		return rn_DI;
+		return IRDB_SDK::rn_DI;
 	else if (strcasecmp(p_reg.c_str(), "R8W") == 0)
-		return rn_R8W;
+		return IRDB_SDK::rn_R8W;
 	else if (strcasecmp(p_reg.c_str(), "R9W") == 0)
-		return rn_R9W;
+		return IRDB_SDK::rn_R9W;
 	else if (strcasecmp(p_reg.c_str(), "R10W") == 0)
-		return rn_R10W;
+		return IRDB_SDK::rn_R10W;
 	else if (strcasecmp(p_reg.c_str(), "R11W") == 0)
-		return rn_R11W;
+		return IRDB_SDK::rn_R11W;
 	else if (strcasecmp(p_reg.c_str(), "R12W") == 0)
-		return rn_R12W;
+		return IRDB_SDK::rn_R12W;
 	else if (strcasecmp(p_reg.c_str(), "R13W") == 0)
-		return rn_R13W;
+		return IRDB_SDK::rn_R13W;
 	else if (strcasecmp(p_reg.c_str(), "R14W") == 0)
-		return rn_R14W;
+		return IRDB_SDK::rn_R14W;
 	else if (strcasecmp(p_reg.c_str(), "R15W") == 0)
-		return rn_R15W;
+		return IRDB_SDK::rn_R15W;
 
 	else if (strcasecmp(p_reg.c_str(), "AH") == 0)
-		return rn_AL;
+		return IRDB_SDK::rn_AL;
 	else if (strcasecmp(p_reg.c_str(), "BH") == 0)
-		return rn_BL;
+		return IRDB_SDK::rn_BL;
 	else if (strcasecmp(p_reg.c_str(), "CH") == 0)
-		return rn_CL;
+		return IRDB_SDK::rn_CL;
 	else if (strcasecmp(p_reg.c_str(), "DH") == 0)
-		return rn_DL;
+		return IRDB_SDK::rn_DL;
 	else if (strcasecmp(p_reg.c_str(), "AL") == 0)
-		return rn_AL;
+		return IRDB_SDK::rn_AL;
 	else if (strcasecmp(p_reg.c_str(), "BL") == 0)
-		return rn_BL;
+		return IRDB_SDK::rn_BL;
 	else if (strcasecmp(p_reg.c_str(), "CL") == 0)
-		return rn_CL;
+		return IRDB_SDK::rn_CL;
 	else if (strcasecmp(p_reg.c_str(), "DL") == 0)
-		return rn_DL;
+		return IRDB_SDK::rn_DL;
 	else if (strcasecmp(p_reg.c_str(), "SIL") == 0)
-		return rn_SIL;
+		return IRDB_SDK::rn_SIL;
 	else if (strcasecmp(p_reg.c_str(), "DIL") == 0)
-		return rn_DIL;
+		return IRDB_SDK::rn_DIL;
 	else if (strcasecmp(p_reg.c_str(), "BPL") == 0)
-		return rn_BPL;
+		return IRDB_SDK::rn_BPL;
 	else if (strcasecmp(p_reg.c_str(), "SPL") == 0)
-		return rn_SPL;
+		return IRDB_SDK::rn_SPL;
 	else if (strcasecmp(p_reg.c_str(), "R8B") == 0)
-		return rn_R8B;
+		return IRDB_SDK::rn_R8B;
 	else if (strcasecmp(p_reg.c_str(), "R9B") == 0)
-		return rn_R9B;
+		return IRDB_SDK::rn_R9B;
 	else if (strcasecmp(p_reg.c_str(), "R10B") == 0)
-		return rn_R10B;
+		return IRDB_SDK::rn_R10B;
 	else if (strcasecmp(p_reg.c_str(), "R11B") == 0)
-		return rn_R11B;
+		return IRDB_SDK::rn_R11B;
 	else if (strcasecmp(p_reg.c_str(), "R12B") == 0)
-		return rn_R12B;
+		return IRDB_SDK::rn_R12B;
 	else if (strcasecmp(p_reg.c_str(), "R13B") == 0)
-		return rn_R13B;
+		return IRDB_SDK::rn_R13B;
 	else if (strcasecmp(p_reg.c_str(), "R14B") == 0)
-		return rn_R14B;
+		return IRDB_SDK::rn_R14B;
 	else if (strcasecmp(p_reg.c_str(), "R15B") == 0)
-		return rn_R15B;
+		return IRDB_SDK::rn_R15B;
 	else
-		return rn_UNKNOWN;
+		return IRDB_SDK::rn_UNKNOWN;
 }
 
 bool Register::is8bit(RegisterName p_reg)
 {
-	return p_reg == rn_AL || p_reg == rn_BL || p_reg == rn_CL || p_reg == rn_DL ||
-		p_reg == rn_AH || p_reg == rn_BH || p_reg == rn_CH || p_reg == rn_DH ||
-		p_reg == rn_SIL || p_reg == rn_DIL || p_reg == rn_BPL || p_reg == rn_SPL ||
-		p_reg == rn_R8B || p_reg == rn_R9B || p_reg == rn_R10B || p_reg == rn_R11B ||
-		p_reg == rn_R12B || p_reg == rn_R13B || p_reg == rn_R14B || p_reg == rn_R15B;
+	return p_reg == IRDB_SDK::rn_AL || p_reg == IRDB_SDK::rn_BL || p_reg == IRDB_SDK::rn_CL || p_reg == IRDB_SDK::rn_DL ||
+		p_reg == IRDB_SDK::rn_AH || p_reg == IRDB_SDK::rn_BH || p_reg == IRDB_SDK::rn_CH || p_reg == IRDB_SDK::rn_DH ||
+		p_reg == IRDB_SDK::rn_SIL || p_reg == IRDB_SDK::rn_DIL || p_reg == IRDB_SDK::rn_BPL || p_reg == IRDB_SDK::rn_SPL ||
+		p_reg == IRDB_SDK::rn_R8B || p_reg == IRDB_SDK::rn_R9B || p_reg == IRDB_SDK::rn_R10B || p_reg == IRDB_SDK::rn_R11B ||
+		p_reg == IRDB_SDK::rn_R12B || p_reg == IRDB_SDK::rn_R13B || p_reg == IRDB_SDK::rn_R14B || p_reg == IRDB_SDK::rn_R15B;
 }
 
 bool Register::is16bit(RegisterName p_reg)
 {
-	return p_reg == rn_AX || p_reg == rn_BX || p_reg == rn_CX || p_reg == rn_DX ||
-		p_reg == rn_BP || p_reg == rn_SP || p_reg == rn_SI || p_reg == rn_DI ||
-		p_reg == rn_R8W || p_reg == rn_R9W || p_reg == rn_R10W || p_reg == rn_R11W ||
-		p_reg == rn_R12W || p_reg == rn_R13W || p_reg == rn_R14W || p_reg == rn_R15W;
+	return p_reg == IRDB_SDK::rn_AX || p_reg == IRDB_SDK::rn_BX || p_reg == IRDB_SDK::rn_CX || p_reg == IRDB_SDK::rn_DX ||
+		p_reg == IRDB_SDK::rn_BP || p_reg == IRDB_SDK::rn_SP || p_reg == IRDB_SDK::rn_SI || p_reg == IRDB_SDK::rn_DI ||
+		p_reg == IRDB_SDK::rn_R8W || p_reg == IRDB_SDK::rn_R9W || p_reg == IRDB_SDK::rn_R10W || p_reg == IRDB_SDK::rn_R11W ||
+		p_reg == IRDB_SDK::rn_R12W || p_reg == IRDB_SDK::rn_R13W || p_reg == IRDB_SDK::rn_R14W || p_reg == IRDB_SDK::rn_R15W;
 }
 
 bool Register::is32bit(RegisterName p_reg)
 {
-	return p_reg == rn_EAX || p_reg == rn_EBX || p_reg == rn_ECX || p_reg == rn_EDX || 
-		p_reg == rn_ESI || p_reg == rn_EDI || p_reg == rn_ESP || p_reg == rn_EBP ||
-		p_reg == rn_R8D || p_reg == rn_R9D || p_reg == rn_R10D || p_reg == rn_R11D ||
-		p_reg == rn_R12D || p_reg == rn_R13D || p_reg == rn_R14D || p_reg == rn_R15D;
+	return p_reg == IRDB_SDK::rn_EAX || p_reg == IRDB_SDK::rn_EBX || p_reg == IRDB_SDK::rn_ECX || p_reg == IRDB_SDK::rn_EDX || 
+		p_reg == IRDB_SDK::rn_ESI || p_reg == IRDB_SDK::rn_EDI || p_reg == IRDB_SDK::rn_ESP || p_reg == IRDB_SDK::rn_EBP ||
+		p_reg == IRDB_SDK::rn_R8D || p_reg == IRDB_SDK::rn_R9D || p_reg == IRDB_SDK::rn_R10D || p_reg == IRDB_SDK::rn_R11D ||
+		p_reg == IRDB_SDK::rn_R12D || p_reg == IRDB_SDK::rn_R13D || p_reg == IRDB_SDK::rn_R14D || p_reg == IRDB_SDK::rn_R15D;
 }
 
 bool Register::is64bit(RegisterName p_reg)
 {
-	return p_reg == rn_RAX || p_reg == rn_RBX || p_reg == rn_RCX || p_reg == rn_RDX || 
-		p_reg == rn_RSI || p_reg == rn_RDI || p_reg == rn_RBP || p_reg == rn_RSP ||
-		p_reg == rn_R8 || p_reg == rn_R9 || p_reg == rn_R10 || p_reg == rn_R11 || 
-		p_reg == rn_R12 || p_reg == rn_R13 || p_reg == rn_R14 || p_reg == rn_R15 || p_reg == rn_RIP;
+	return p_reg == IRDB_SDK::rn_RAX || p_reg == IRDB_SDK::rn_RBX || p_reg == IRDB_SDK::rn_RCX || p_reg == IRDB_SDK::rn_RDX || 
+		p_reg == IRDB_SDK::rn_RSI || p_reg == IRDB_SDK::rn_RDI || p_reg == IRDB_SDK::rn_RBP || p_reg == IRDB_SDK::rn_RSP ||
+		p_reg == IRDB_SDK::rn_R8 || p_reg == IRDB_SDK::rn_R9 || p_reg == IRDB_SDK::rn_R10 || p_reg == IRDB_SDK::rn_R11 || 
+		p_reg == IRDB_SDK::rn_R12 || p_reg == IRDB_SDK::rn_R13 || p_reg == IRDB_SDK::rn_R14 || p_reg == IRDB_SDK::rn_R15 || p_reg == IRDB_SDK::rn_RIP;
 }
 
 std::string Register::toString(RegisterName p_reg)
 {
-	if (p_reg == rn_UNKNOWN) return std::string("UNKNOWN");
-
-	else if (p_reg == rn_EFLAGS) return std::string("EFLAGS");
-
-	else if (p_reg == rn_RAX) return std::string("RAX");
-	else if (p_reg == rn_RBX) return std::string("RBX");
-	else if (p_reg == rn_RCX) return std::string("RCX");
-	else if (p_reg == rn_RDX) return std::string("RDX");
-	else if (p_reg == rn_RSI) return std::string("RSI");
-	else if (p_reg == rn_RDI) return std::string("RDI");
-	else if (p_reg == rn_RBP) return std::string("RBP");
-	else if (p_reg == rn_RSP) return std::string("RSP");
-	else if (p_reg == rn_R8) return std::string("R8");
-	else if (p_reg == rn_R9) return std::string("R9");
-	else if (p_reg == rn_R10) return std::string("R10");
-	else if (p_reg == rn_R11) return std::string("R11");
-	else if (p_reg == rn_R12) return std::string("R12");
-	else if (p_reg == rn_R13) return std::string("R13");
-	else if (p_reg == rn_R14) return std::string("R14");
-	else if (p_reg == rn_R15) return std::string("R15");
-	else if (p_reg == rn_RIP) return std::string("RIP");
-
-	else if (p_reg == rn_EAX) return std::string("EAX");
-	else if (p_reg == rn_EBX) return std::string("EBX");
-	else if (p_reg == rn_ECX) return std::string("ECX");
-	else if (p_reg == rn_EDX) return std::string("EDX");
-	else if (p_reg == rn_EDI) return std::string("EDI");
-	else if (p_reg == rn_ESI) return std::string("ESI");
-	else if (p_reg == rn_EBP) return std::string("EBP");
-	else if (p_reg == rn_ESP) return std::string("ESP");
-	else if (p_reg == rn_R8D) return std::string("R8D");
-	else if (p_reg == rn_R9D) return std::string("R9D");
-	else if (p_reg == rn_R10D) return std::string("R10D");
-	else if (p_reg == rn_R11D) return std::string("R11D");
-	else if (p_reg == rn_R12D) return std::string("R12D");
-	else if (p_reg == rn_R13D) return std::string("R13D");
-	else if (p_reg == rn_R14D) return std::string("R14D");
-	else if (p_reg == rn_R15D) return std::string("R15D");
-
-	else if (p_reg == rn_AX) return std::string("AX");
-	else if (p_reg == rn_BX) return std::string("BX");
-	else if (p_reg == rn_CX) return std::string("CX");
-	else if (p_reg == rn_DX) return std::string("DX");
-	else if (p_reg == rn_BP) return std::string("BP");
-	else if (p_reg == rn_SP) return std::string("SP");
-	else if (p_reg == rn_SI) return std::string("SI");
-	else if (p_reg == rn_DI) return std::string("DI");
-	else if (p_reg == rn_R8W) return std::string("R8W");
-	else if (p_reg == rn_R9W) return std::string("R9W");
-	else if (p_reg == rn_R10W) return std::string("R10W");
-	else if (p_reg == rn_R11W) return std::string("R11W");
-	else if (p_reg == rn_R12W) return std::string("R12W");
-	else if (p_reg == rn_R13W) return std::string("R13W");
-	else if (p_reg == rn_R14W) return std::string("R14W");
-	else if (p_reg == rn_R15W) return std::string("R15W");
-
-	else if (p_reg == rn_AH) return std::string("AH");
-	else if (p_reg == rn_BH) return std::string("BH");
-	else if (p_reg == rn_CH) return std::string("CH");
-	else if (p_reg == rn_DH) return std::string("DH");
-	else if (p_reg == rn_AL) return std::string("AL");
-	else if (p_reg == rn_BL) return std::string("BL");
-	else if (p_reg == rn_CL) return std::string("CL");
-	else if (p_reg == rn_DL) return std::string("DL");
-	else if (p_reg == rn_SIL) return std::string("SIL");
-	else if (p_reg == rn_DIL) return std::string("DIL");
-	else if (p_reg == rn_BPL) return std::string("BPL");
-	else if (p_reg == rn_SPL) return std::string("SPL");
-	else if (p_reg == rn_R8B) return std::string("R8B");
-	else if (p_reg == rn_R9B) return std::string("R9B");
-	else if (p_reg == rn_R10B) return std::string("R10B");
-	else if (p_reg == rn_R11B) return std::string("R11B");
-	else if (p_reg == rn_R12B) return std::string("R12B");
-	else if (p_reg == rn_R13B) return std::string("R13B");
-	else if (p_reg == rn_R14B) return std::string("R14B");
-	else if (p_reg == rn_R15B) return std::string("R15B");
+	if (p_reg == IRDB_SDK::rn_UNKNOWN) return std::string("UNKNOWN");
+
+	else if (p_reg == IRDB_SDK::rn_EFLAGS) return std::string("EFLAGS");
+
+	else if (p_reg == IRDB_SDK::rn_RAX) return std::string("RAX");
+	else if (p_reg == IRDB_SDK::rn_RBX) return std::string("RBX");
+	else if (p_reg == IRDB_SDK::rn_RCX) return std::string("RCX");
+	else if (p_reg == IRDB_SDK::rn_RDX) return std::string("RDX");
+	else if (p_reg == IRDB_SDK::rn_RSI) return std::string("RSI");
+	else if (p_reg == IRDB_SDK::rn_RDI) return std::string("RDI");
+	else if (p_reg == IRDB_SDK::rn_RBP) return std::string("RBP");
+	else if (p_reg == IRDB_SDK::rn_RSP) return std::string("RSP");
+	else if (p_reg == IRDB_SDK::rn_R8) return std::string("R8");
+	else if (p_reg == IRDB_SDK::rn_R9) return std::string("R9");
+	else if (p_reg == IRDB_SDK::rn_R10) return std::string("R10");
+	else if (p_reg == IRDB_SDK::rn_R11) return std::string("R11");
+	else if (p_reg == IRDB_SDK::rn_R12) return std::string("R12");
+	else if (p_reg == IRDB_SDK::rn_R13) return std::string("R13");
+	else if (p_reg == IRDB_SDK::rn_R14) return std::string("R14");
+	else if (p_reg == IRDB_SDK::rn_R15) return std::string("R15");
+	else if (p_reg == IRDB_SDK::rn_RIP) return std::string("RIP");
+
+	else if (p_reg == IRDB_SDK::rn_EAX) return std::string("EAX");
+	else if (p_reg == IRDB_SDK::rn_EBX) return std::string("EBX");
+	else if (p_reg == IRDB_SDK::rn_ECX) return std::string("ECX");
+	else if (p_reg == IRDB_SDK::rn_EDX) return std::string("EDX");
+	else if (p_reg == IRDB_SDK::rn_EDI) return std::string("EDI");
+	else if (p_reg == IRDB_SDK::rn_ESI) return std::string("ESI");
+	else if (p_reg == IRDB_SDK::rn_EBP) return std::string("EBP");
+	else if (p_reg == IRDB_SDK::rn_ESP) return std::string("ESP");
+	else if (p_reg == IRDB_SDK::rn_R8D) return std::string("R8D");
+	else if (p_reg == IRDB_SDK::rn_R9D) return std::string("R9D");
+	else if (p_reg == IRDB_SDK::rn_R10D) return std::string("R10D");
+	else if (p_reg == IRDB_SDK::rn_R11D) return std::string("R11D");
+	else if (p_reg == IRDB_SDK::rn_R12D) return std::string("R12D");
+	else if (p_reg == IRDB_SDK::rn_R13D) return std::string("R13D");
+	else if (p_reg == IRDB_SDK::rn_R14D) return std::string("R14D");
+	else if (p_reg == IRDB_SDK::rn_R15D) return std::string("R15D");
+
+	else if (p_reg == IRDB_SDK::rn_AX) return std::string("AX");
+	else if (p_reg == IRDB_SDK::rn_BX) return std::string("BX");
+	else if (p_reg == IRDB_SDK::rn_CX) return std::string("CX");
+	else if (p_reg == IRDB_SDK::rn_DX) return std::string("DX");
+	else if (p_reg == IRDB_SDK::rn_BP) return std::string("BP");
+	else if (p_reg == IRDB_SDK::rn_SP) return std::string("SP");
+	else if (p_reg == IRDB_SDK::rn_SI) return std::string("SI");
+	else if (p_reg == IRDB_SDK::rn_DI) return std::string("DI");
+	else if (p_reg == IRDB_SDK::rn_R8W) return std::string("R8W");
+	else if (p_reg == IRDB_SDK::rn_R9W) return std::string("R9W");
+	else if (p_reg == IRDB_SDK::rn_R10W) return std::string("R10W");
+	else if (p_reg == IRDB_SDK::rn_R11W) return std::string("R11W");
+	else if (p_reg == IRDB_SDK::rn_R12W) return std::string("R12W");
+	else if (p_reg == IRDB_SDK::rn_R13W) return std::string("R13W");
+	else if (p_reg == IRDB_SDK::rn_R14W) return std::string("R14W");
+	else if (p_reg == IRDB_SDK::rn_R15W) return std::string("R15W");
+
+	else if (p_reg == IRDB_SDK::rn_AH) return std::string("AH");
+	else if (p_reg == IRDB_SDK::rn_BH) return std::string("BH");
+	else if (p_reg == IRDB_SDK::rn_CH) return std::string("CH");
+	else if (p_reg == IRDB_SDK::rn_DH) return std::string("DH");
+	else if (p_reg == IRDB_SDK::rn_AL) return std::string("AL");
+	else if (p_reg == IRDB_SDK::rn_BL) return std::string("BL");
+	else if (p_reg == IRDB_SDK::rn_CL) return std::string("CL");
+	else if (p_reg == IRDB_SDK::rn_DL) return std::string("DL");
+	else if (p_reg == IRDB_SDK::rn_SIL) return std::string("SIL");
+	else if (p_reg == IRDB_SDK::rn_DIL) return std::string("DIL");
+	else if (p_reg == IRDB_SDK::rn_BPL) return std::string("BPL");
+	else if (p_reg == IRDB_SDK::rn_SPL) return std::string("SPL");
+	else if (p_reg == IRDB_SDK::rn_R8B) return std::string("R8B");
+	else if (p_reg == IRDB_SDK::rn_R9B) return std::string("R9B");
+	else if (p_reg == IRDB_SDK::rn_R10B) return std::string("R10B");
+	else if (p_reg == IRDB_SDK::rn_R11B) return std::string("R11B");
+	else if (p_reg == IRDB_SDK::rn_R12B) return std::string("R12B");
+	else if (p_reg == IRDB_SDK::rn_R13B) return std::string("R13B");
+	else if (p_reg == IRDB_SDK::rn_R14B) return std::string("R14B");
+	else if (p_reg == IRDB_SDK::rn_R15B) return std::string("R15B");
 
 	else return std::string("UNEXPECTED REGISTER VALUE");
 }
@@ -311,83 +311,83 @@ int Register::getBitWidth(RegisterName p_reg)
 {
 	switch (p_reg)
 	{
-		case rn_RAX:
-		case rn_RBX:
-		case rn_RCX:
-		case rn_RDX:
-		case rn_RSI:
-		case rn_RDI:
-		case rn_RBP:
-		case rn_RSP:
-		case rn_R8:
-		case rn_R9:
-		case rn_R10:
-		case rn_R11:
-		case rn_R12:
-		case rn_R13:
-		case rn_R14:
-		case rn_R15:
-		case rn_RIP:
+		case IRDB_SDK::rn_RAX:
+		case IRDB_SDK::rn_RBX:
+		case IRDB_SDK::rn_RCX:
+		case IRDB_SDK::rn_RDX:
+		case IRDB_SDK::rn_RSI:
+		case IRDB_SDK::rn_RDI:
+		case IRDB_SDK::rn_RBP:
+		case IRDB_SDK::rn_RSP:
+		case IRDB_SDK::rn_R8:
+		case IRDB_SDK::rn_R9:
+		case IRDB_SDK::rn_R10:
+		case IRDB_SDK::rn_R11:
+		case IRDB_SDK::rn_R12:
+		case IRDB_SDK::rn_R13:
+		case IRDB_SDK::rn_R14:
+		case IRDB_SDK::rn_R15:
+		case IRDB_SDK::rn_RIP:
 			return 64;
 			break;
-		case rn_EAX:
-		case rn_EBX:
-		case rn_ECX:
-		case rn_EDX:
-		case rn_EDI:
-		case rn_ESI:
-		case rn_EBP:
-		case rn_ESP:
-		case rn_R8D:
-		case rn_R9D:
-		case rn_R10D:
-		case rn_R11D:
-		case rn_R12D:
-		case rn_R13D:
-		case rn_R14D:
-		case rn_R15D:
+		case IRDB_SDK::rn_EAX:
+		case IRDB_SDK::rn_EBX:
+		case IRDB_SDK::rn_ECX:
+		case IRDB_SDK::rn_EDX:
+		case IRDB_SDK::rn_EDI:
+		case IRDB_SDK::rn_ESI:
+		case IRDB_SDK::rn_EBP:
+		case IRDB_SDK::rn_ESP:
+		case IRDB_SDK::rn_R8D:
+		case IRDB_SDK::rn_R9D:
+		case IRDB_SDK::rn_R10D:
+		case IRDB_SDK::rn_R11D:
+		case IRDB_SDK::rn_R12D:
+		case IRDB_SDK::rn_R13D:
+		case IRDB_SDK::rn_R14D:
+		case IRDB_SDK::rn_R15D:
 			return 32;
 			break;
 
-		case rn_AX:				
-		case rn_BX:				
-		case rn_CX:				
-		case rn_DX:				
-		case rn_BP:				
-		case rn_SP:				
-		case rn_SI:				
-		case rn_DI:				
-		case rn_R8W:
-		case rn_R9W:
-		case rn_R10W:
-		case rn_R11W:
-		case rn_R12W:
-		case rn_R13W:
-		case rn_R14W:
-		case rn_R15W:
+		case IRDB_SDK::rn_AX:				
+		case IRDB_SDK::rn_BX:				
+		case IRDB_SDK::rn_CX:				
+		case IRDB_SDK::rn_DX:				
+		case IRDB_SDK::rn_BP:				
+		case IRDB_SDK::rn_SP:				
+		case IRDB_SDK::rn_SI:				
+		case IRDB_SDK::rn_DI:				
+		case IRDB_SDK::rn_R8W:
+		case IRDB_SDK::rn_R9W:
+		case IRDB_SDK::rn_R10W:
+		case IRDB_SDK::rn_R11W:
+		case IRDB_SDK::rn_R12W:
+		case IRDB_SDK::rn_R13W:
+		case IRDB_SDK::rn_R14W:
+		case IRDB_SDK::rn_R15W:
 			return 16;
 			break;
 
-		case rn_AH:				
-		case rn_BH:				
-		case rn_CH:				
-		case rn_DH:				
-		case rn_AL:				
-		case rn_BL:				
-		case rn_CL:				
-		case rn_DL:				
-		case rn_SIL:
-		case rn_DIL:
-		case rn_BPL:
-		case rn_SPL:
-		case rn_R8B:
-		case rn_R9B:
-		case rn_R10B:
-		case rn_R11B:
-		case rn_R12B:
-		case rn_R13B:
-		case rn_R14B:
-		case rn_R15B:
+		case IRDB_SDK::rn_AH:				
+		case IRDB_SDK::rn_BH:				
+		case IRDB_SDK::rn_CH:				
+		case IRDB_SDK::rn_DH:				
+		case IRDB_SDK::rn_AL:				
+		case IRDB_SDK::rn_BL:				
+		case IRDB_SDK::rn_CL:				
+		case IRDB_SDK::rn_DL:				
+		case IRDB_SDK::rn_SIL:
+		case IRDB_SDK::rn_DIL:
+		case IRDB_SDK::rn_BPL:
+		case IRDB_SDK::rn_SPL:
+		case IRDB_SDK::rn_R8B:
+		case IRDB_SDK::rn_R9B:
+		case IRDB_SDK::rn_R10B:
+		case IRDB_SDK::rn_R11B:
+		case IRDB_SDK::rn_R12B:
+		case IRDB_SDK::rn_R13B:
+		case IRDB_SDK::rn_R14B:
+		case IRDB_SDK::rn_R15B:
 			return 8;
 			break;
 
@@ -410,23 +410,23 @@ RegisterName Register::getFreeRegister64(const RegisterSet_t& p_taken)
 	if (p_taken.count(a) == 0 && p_taken.count(b) == 0 && p_taken.count(c) == 0 && p_taken.count(d) == 0  && p_taken.count(e)==0) \
 		return a; \
 
-	ret_if_free4(rn_R8, rn_R8D, rn_R8W, rn_R8B);
-	ret_if_free4(rn_R9, rn_R9D, rn_R9W, rn_R9B);
-	ret_if_free4(rn_R10, rn_R10D, rn_R10W, rn_R10B);
-	ret_if_free4(rn_R11, rn_R11D, rn_R11W, rn_R11B);
-	ret_if_free4(rn_R12, rn_R12D, rn_R12W, rn_R12B);
-	ret_if_free4(rn_R13, rn_R13D, rn_R13W, rn_R13B);
-	ret_if_free4(rn_R14, rn_R14D, rn_R14W, rn_R14B);
-	ret_if_free4(rn_R15, rn_R15D, rn_R15W, rn_R15B);
-	ret_if_free5(rn_RAX, rn_EAX, rn_AX, rn_AL, rn_AH);
-	ret_if_free5(rn_RCX, rn_ECX, rn_CX, rn_CL, rn_CH);
-	ret_if_free5(rn_RDX, rn_EDX, rn_DX, rn_DL, rn_DH);
-	ret_if_free5(rn_RBX, rn_EBX, rn_BX, rn_BL, rn_BH);
-	ret_if_free5(rn_RSI, rn_ESI, rn_SI, rn_SIL, rn_SIH);
-	ret_if_free5(rn_RDI, rn_EDI, rn_DI, rn_DIL, rn_DIH);
-	ret_if_free5(rn_RSP, rn_ESP, rn_SP, rn_SPL, rn_SPH);
-	ret_if_free5(rn_RBP, rn_EBP, rn_BP, rn_BPL, rn_BPH);
-	return rn_UNKNOWN;
+	ret_if_free4(IRDB_SDK::rn_R8, IRDB_SDK::rn_R8D, IRDB_SDK::rn_R8W, IRDB_SDK::rn_R8B);
+	ret_if_free4(IRDB_SDK::rn_R9, IRDB_SDK::rn_R9D, IRDB_SDK::rn_R9W, IRDB_SDK::rn_R9B);
+	ret_if_free4(IRDB_SDK::rn_R10, IRDB_SDK::rn_R10D, IRDB_SDK::rn_R10W, IRDB_SDK::rn_R10B);
+	ret_if_free4(IRDB_SDK::rn_R11, IRDB_SDK::rn_R11D, IRDB_SDK::rn_R11W, IRDB_SDK::rn_R11B);
+	ret_if_free4(IRDB_SDK::rn_R12, IRDB_SDK::rn_R12D, IRDB_SDK::rn_R12W, IRDB_SDK::rn_R12B);
+	ret_if_free4(IRDB_SDK::rn_R13, IRDB_SDK::rn_R13D, IRDB_SDK::rn_R13W, IRDB_SDK::rn_R13B);
+	ret_if_free4(IRDB_SDK::rn_R14, IRDB_SDK::rn_R14D, IRDB_SDK::rn_R14W, IRDB_SDK::rn_R14B);
+	ret_if_free4(IRDB_SDK::rn_R15, IRDB_SDK::rn_R15D, IRDB_SDK::rn_R15W, IRDB_SDK::rn_R15B);
+	ret_if_free5(IRDB_SDK::rn_RAX, IRDB_SDK::rn_EAX, IRDB_SDK::rn_AX, IRDB_SDK::rn_AL, IRDB_SDK::rn_AH);
+	ret_if_free5(IRDB_SDK::rn_RCX, IRDB_SDK::rn_ECX, IRDB_SDK::rn_CX, IRDB_SDK::rn_CL, IRDB_SDK::rn_CH);
+	ret_if_free5(IRDB_SDK::rn_RDX, IRDB_SDK::rn_EDX, IRDB_SDK::rn_DX, IRDB_SDK::rn_DL, IRDB_SDK::rn_DH);
+	ret_if_free5(IRDB_SDK::rn_RBX, IRDB_SDK::rn_EBX, IRDB_SDK::rn_BX, IRDB_SDK::rn_BL, IRDB_SDK::rn_BH);
+	ret_if_free5(IRDB_SDK::rn_RSI, IRDB_SDK::rn_ESI, IRDB_SDK::rn_SI, IRDB_SDK::rn_SIL, IRDB_SDK::rn_SIH);
+	ret_if_free5(IRDB_SDK::rn_RDI, IRDB_SDK::rn_EDI, IRDB_SDK::rn_DI, IRDB_SDK::rn_DIL, IRDB_SDK::rn_DIH);
+	ret_if_free5(IRDB_SDK::rn_RSP, IRDB_SDK::rn_ESP, IRDB_SDK::rn_SP, IRDB_SDK::rn_SPL, IRDB_SDK::rn_SPH);
+	ret_if_free5(IRDB_SDK::rn_RBP, IRDB_SDK::rn_EBP, IRDB_SDK::rn_BP, IRDB_SDK::rn_BPL, IRDB_SDK::rn_BPH);
+	return IRDB_SDK::rn_UNKNOWN;
 }
 
 string Register::readRegisterSet(const string &in, RegisterSet_t &out)
@@ -453,77 +453,77 @@ RegisterName Register::promoteTo64(const RegisterName p_reg)
 
 	switch (p_reg)
 	{
-		case rn_AL:				
-		case rn_AH:				
-		case rn_AX:				
-		case rn_EAX:
-			return rn_RAX;
-		case rn_BL:				
-		case rn_BH:				
-		case rn_BX:				
-		case rn_EBX:
-			return rn_RBX;
-		case rn_CL:				
-		case rn_CH:				
-		case rn_CX:				
-		case rn_ECX:
-			return rn_RCX;
-		case rn_DL:				
-		case rn_DH:				
-		case rn_DX:				
-		case rn_EDX:
-			return rn_RDX;
-		case rn_DIL:
-		case rn_DI:				
-		case rn_EDI:
-			return rn_RDI;
-		case rn_SIL:
-		case rn_SI:				
-		case rn_ESI:
-			return rn_RSI;
-		case rn_BPL:
-		case rn_BP:				
-		case rn_EBP:
-			return rn_RBP;
-		case rn_SPL:
-		case rn_SP:				
-		case rn_ESP:
-			return rn_RSP;
-		case rn_R8B:
-		case rn_R8W:
-		case rn_R8D:
-			return rn_R8;
-		case rn_R9B:
-		case rn_R9W:
-		case rn_R9D:
-			return rn_R9;
-		case rn_R10B:
-		case rn_R10W:
-		case rn_R10D:
-			return rn_R10;
-		case rn_R11B:
-		case rn_R11W:
-		case rn_R11D:
-			return rn_R11;
-		case rn_R12B:
-		case rn_R12W:
-		case rn_R12D:
-			return rn_R12;
-		case rn_R13B:
-		case rn_R13W:
-		case rn_R13D:
-			return rn_R13;
-		case rn_R14B:
-		case rn_R14W:
-		case rn_R14D:
-			return rn_R14;
-		case rn_R15B:
-		case rn_R15W:
-		case rn_R15D:
-			return rn_R15;
+		case IRDB_SDK::rn_AL:				
+		case IRDB_SDK::rn_AH:				
+		case IRDB_SDK::rn_AX:				
+		case IRDB_SDK::rn_EAX:
+			return IRDB_SDK::rn_RAX;
+		case IRDB_SDK::rn_BL:				
+		case IRDB_SDK::rn_BH:				
+		case IRDB_SDK::rn_BX:				
+		case IRDB_SDK::rn_EBX:
+			return IRDB_SDK::rn_RBX;
+		case IRDB_SDK::rn_CL:				
+		case IRDB_SDK::rn_CH:				
+		case IRDB_SDK::rn_CX:				
+		case IRDB_SDK::rn_ECX:
+			return IRDB_SDK::rn_RCX;
+		case IRDB_SDK::rn_DL:				
+		case IRDB_SDK::rn_DH:				
+		case IRDB_SDK::rn_DX:				
+		case IRDB_SDK::rn_EDX:
+			return IRDB_SDK::rn_RDX;
+		case IRDB_SDK::rn_DIL:
+		case IRDB_SDK::rn_DI:				
+		case IRDB_SDK::rn_EDI:
+			return IRDB_SDK::rn_RDI;
+		case IRDB_SDK::rn_SIL:
+		case IRDB_SDK::rn_SI:				
+		case IRDB_SDK::rn_ESI:
+			return IRDB_SDK::rn_RSI;
+		case IRDB_SDK::rn_BPL:
+		case IRDB_SDK::rn_BP:				
+		case IRDB_SDK::rn_EBP:
+			return IRDB_SDK::rn_RBP;
+		case IRDB_SDK::rn_SPL:
+		case IRDB_SDK::rn_SP:				
+		case IRDB_SDK::rn_ESP:
+			return IRDB_SDK::rn_RSP;
+		case IRDB_SDK::rn_R8B:
+		case IRDB_SDK::rn_R8W:
+		case IRDB_SDK::rn_R8D:
+			return IRDB_SDK::rn_R8;
+		case IRDB_SDK::rn_R9B:
+		case IRDB_SDK::rn_R9W:
+		case IRDB_SDK::rn_R9D:
+			return IRDB_SDK::rn_R9;
+		case IRDB_SDK::rn_R10B:
+		case IRDB_SDK::rn_R10W:
+		case IRDB_SDK::rn_R10D:
+			return IRDB_SDK::rn_R10;
+		case IRDB_SDK::rn_R11B:
+		case IRDB_SDK::rn_R11W:
+		case IRDB_SDK::rn_R11D:
+			return IRDB_SDK::rn_R11;
+		case IRDB_SDK::rn_R12B:
+		case IRDB_SDK::rn_R12W:
+		case IRDB_SDK::rn_R12D:
+			return IRDB_SDK::rn_R12;
+		case IRDB_SDK::rn_R13B:
+		case IRDB_SDK::rn_R13W:
+		case IRDB_SDK::rn_R13D:
+			return IRDB_SDK::rn_R13;
+		case IRDB_SDK::rn_R14B:
+		case IRDB_SDK::rn_R14W:
+		case IRDB_SDK::rn_R14D:
+			return IRDB_SDK::rn_R14;
+		case IRDB_SDK::rn_R15B:
+		case IRDB_SDK::rn_R15W:
+		case IRDB_SDK::rn_R15D:
+			return IRDB_SDK::rn_R15;
 
 		default:
-			return rn_UNKNOWN;
+			return IRDB_SDK::rn_UNKNOWN;
 			break;
 	}
 }
@@ -535,24 +535,24 @@ RegisterName Register::demoteTo32(const RegisterName p_reg)
 
 	switch (p_reg)
 	{
-		case rn_RAX:   return  rn_EAX;
-		case rn_RBX:   return  rn_EBX;
-		case rn_RCX:   return  rn_ECX;
-		case rn_RDX:   return  rn_EDX;
-		case rn_RBP:   return  rn_EBP;
-		case rn_RSP:   return  rn_ESP;
-		case rn_RSI:   return  rn_ESI;
-		case rn_RDI:   return  rn_EDI;
-		case  rn_R8:   return  rn_R8D;
-		case  rn_R9:   return  rn_R9D;
-		case rn_R10:   return rn_R10D;
-		case rn_R11:   return rn_R11D;
-		case rn_R12:   return rn_R12D;
-		case rn_R13:   return rn_R13D;
-		case rn_R14:   return rn_R14D;
-		case rn_R15:   return rn_R15D;
+		case IRDB_SDK::rn_RAX:   return  IRDB_SDK::rn_EAX;
+		case IRDB_SDK::rn_RBX:   return  IRDB_SDK::rn_EBX;
+		case IRDB_SDK::rn_RCX:   return  IRDB_SDK::rn_ECX;
+		case IRDB_SDK::rn_RDX:   return  IRDB_SDK::rn_EDX;
+		case IRDB_SDK::rn_RBP:   return  IRDB_SDK::rn_EBP;
+		case IRDB_SDK::rn_RSP:   return  IRDB_SDK::rn_ESP;
+		case IRDB_SDK::rn_RSI:   return  IRDB_SDK::rn_ESI;
+		case IRDB_SDK::rn_RDI:   return  IRDB_SDK::rn_EDI;
+		case  IRDB_SDK::rn_R8:   return  IRDB_SDK::rn_R8D;
+		case  IRDB_SDK::rn_R9:   return  IRDB_SDK::rn_R9D;
+		case IRDB_SDK::rn_R10:   return IRDB_SDK::rn_R10D;
+		case IRDB_SDK::rn_R11:   return IRDB_SDK::rn_R11D;
+		case IRDB_SDK::rn_R12:   return IRDB_SDK::rn_R12D;
+		case IRDB_SDK::rn_R13:   return IRDB_SDK::rn_R13D;
+		case IRDB_SDK::rn_R14:   return IRDB_SDK::rn_R14D;
+		case IRDB_SDK::rn_R15:   return IRDB_SDK::rn_R15D;
 		default:
-			return rn_UNKNOWN;
+			return IRDB_SDK::rn_UNKNOWN;
 			break;
 	}
 }
@@ -564,24 +564,24 @@ RegisterName Register::demoteTo16(const RegisterName p_reg)
 
 	switch (p_reg)
 	{
-		case rn_RAX: case  rn_EAX:   return rn_AX;
-		case rn_RBX: case  rn_EBX:   return rn_BX;
-		case rn_RCX: case  rn_ECX:   return rn_CX;
-		case rn_RDX: case  rn_EDX:   return rn_DX;
-		case rn_RBP: case  rn_EBP:   return rn_BP;
-		case rn_RSP: case  rn_ESP:   return rn_SP;
-		case rn_RSI: case  rn_ESI:   return rn_SI;
-		case rn_RDI: case  rn_EDI:   return rn_DI;
-		case  rn_R8: case  rn_R8D:   return rn_R8W;
-		case  rn_R9: case  rn_R9D:   return rn_R9W;
-		case rn_R10: case rn_R10D:   return rn_R10W;
-		case rn_R11: case rn_R11D:   return rn_R11W;
-		case rn_R12: case rn_R12D:   return rn_R12W;
-		case rn_R13: case rn_R13D:   return rn_R13W;
-		case rn_R14: case rn_R14D:   return rn_R14W;
-		case rn_R15: case rn_R15D:   return rn_R15W;
+		case IRDB_SDK::rn_RAX: case  IRDB_SDK::rn_EAX:   return IRDB_SDK::rn_AX;
+		case IRDB_SDK::rn_RBX: case  IRDB_SDK::rn_EBX:   return IRDB_SDK::rn_BX;
+		case IRDB_SDK::rn_RCX: case  IRDB_SDK::rn_ECX:   return IRDB_SDK::rn_CX;
+		case IRDB_SDK::rn_RDX: case  IRDB_SDK::rn_EDX:   return IRDB_SDK::rn_DX;
+		case IRDB_SDK::rn_RBP: case  IRDB_SDK::rn_EBP:   return IRDB_SDK::rn_BP;
+		case IRDB_SDK::rn_RSP: case  IRDB_SDK::rn_ESP:   return IRDB_SDK::rn_SP;
+		case IRDB_SDK::rn_RSI: case  IRDB_SDK::rn_ESI:   return IRDB_SDK::rn_SI;
+		case IRDB_SDK::rn_RDI: case  IRDB_SDK::rn_EDI:   return IRDB_SDK::rn_DI;
+		case  IRDB_SDK::rn_R8: case  IRDB_SDK::rn_R8D:   return IRDB_SDK::rn_R8W;
+		case  IRDB_SDK::rn_R9: case  IRDB_SDK::rn_R9D:   return IRDB_SDK::rn_R9W;
+		case IRDB_SDK::rn_R10: case IRDB_SDK::rn_R10D:   return IRDB_SDK::rn_R10W;
+		case IRDB_SDK::rn_R11: case IRDB_SDK::rn_R11D:   return IRDB_SDK::rn_R11W;
+		case IRDB_SDK::rn_R12: case IRDB_SDK::rn_R12D:   return IRDB_SDK::rn_R12W;
+		case IRDB_SDK::rn_R13: case IRDB_SDK::rn_R13D:   return IRDB_SDK::rn_R13W;
+		case IRDB_SDK::rn_R14: case IRDB_SDK::rn_R14D:   return IRDB_SDK::rn_R14W;
+		case IRDB_SDK::rn_R15: case IRDB_SDK::rn_R15D:   return IRDB_SDK::rn_R15W;
 		default:
-			return rn_UNKNOWN;
+			return IRDB_SDK::rn_UNKNOWN;
 			break;
 	}
 }
-- 
GitLab