diff --git a/tools/helper.cpp b/tools/helper.cpp
index fbb0275..d3790de 100644
--- a/tools/helper.cpp
+++ b/tools/helper.cpp
@@ -110,4 +110,35 @@
     return (result == ipmi_flash::ActionStatus::success);
 }
 
+void* memcpyAligned(void* destination, const void* source, std::size_t size)
+{
+    std::size_t i = 0;
+    std::size_t bytesCopied = 0;
+
+    if ((alignof(destination) == alignof(std::uint64_t)) &&
+        (alignof(source) == alignof(std::uint64_t)))
+    {
+        auto src64 = reinterpret_cast<const volatile std::uint64_t*>(source);
+        auto dest64 = reinterpret_cast<volatile std::uint64_t*>(destination);
+
+        for (i = 0; i < size / sizeof(std::uint64_t); i++)
+        {
+            *dest64++ = *src64++;
+            bytesCopied += sizeof(std::uint64_t);
+        }
+    }
+
+    auto srcMem8 =
+        reinterpret_cast<const volatile std::uint8_t*>(source) + bytesCopied;
+    auto destMem8 =
+        reinterpret_cast<volatile std::uint8_t*>(destination) + bytesCopied;
+
+    for (i = bytesCopied; i < size; i++)
+    {
+        *destMem8++ = *srcMem8++;
+    }
+
+    return destination;
+}
+
 } // namespace host_tool
