diff --git a/libIRDB/include/core/fileir.hpp b/libIRDB/include/core/fileir.hpp
index bc69b9c204fcd885ffc434e5244e0342279214c2..d5c8b5f181f81c095f1bd17b93a9fb8173186d28 100644
--- a/libIRDB/include/core/fileir.hpp
+++ b/libIRDB/include/core/fileir.hpp
@@ -37,6 +37,8 @@ class FileIR_t : public BaseObj_t
 	void AssembleRegistry();
 	void RegisterAssembly(Instruction_t *instr, std::string assembly);
 	void UnregisterAssembly(Instruction_t *instr);
+    std::string LookupAssembly(Instruction_t *instr);
+
 	//Needed for inserting assembly before an instruction. 
 	//if orig is not registered, the function returns, otherwise
 	//the instruction/assembly mapping of orig->assembly is altered to
diff --git a/libIRDB/src/core/fileir.cpp b/libIRDB/src/core/fileir.cpp
index ef39e8c36328415fb44ad4e0d8891743b55edcdc..0f0f566289c38e735c70ac8799c058a5936f1381 100644
--- a/libIRDB/src/core/fileir.cpp
+++ b/libIRDB/src/core/fileir.cpp
@@ -195,6 +195,13 @@ void FileIR_t::UnregisterAssembly(Instruction_t *instr)
 	assembly_registry.erase(instr);
 }
 
+std::string FileIR_t::LookupAssembly(Instruction_t *instr)
+{
+	if (assembly_registry.find(instr) != assembly_registry.end())
+		return assembly_registry[instr];
+	else
+		return std::string();
+}
 
 std::map<db_id_t,Function_t*> FileIR_t::ReadFuncsFromDB
 	(