diff --git a/insmod/include/dump/pixel_dump.h b/insmod/include/dump/pixel_dump.h
index bf74efa..4d67d15 100644
--- a/insmod/include/dump/pixel_dump.h
+++ b/insmod/include/dump/pixel_dump.h
@@ -10,5 +10,6 @@
 void runCommand(const char* title, const char* cmd);
 std::string concatenatePath(const char* folder, const char* file);
 void dumpLogs(const char* SrcDir, const char* DestDir, int limit, const char* prefix);
+void copyFile(const char* SrcDir, const char* DestDir);
 
 #endif  // DEVICE_GOOGLE_GS_COMMON_INSMOD_INCLUDE_DUMP_PIXEL_DUMP_H_
diff --git a/insmod/pixel_dump.cpp b/insmod/pixel_dump.cpp
index db7fe3b..3bf3d6e 100644
--- a/insmod/pixel_dump.cpp
+++ b/insmod/pixel_dump.cpp
@@ -83,10 +83,7 @@
         }
 
         copiedFiles++;
-
-        std::ifstream src(concatenatePath(SrcDir, dirent_list[i]->d_name).c_str(), std::ios::binary);
-        std::ofstream dst(concatenatePath(DestDir, dirent_list[i]->d_name).c_str(), std::ios::binary);
-        dst << src.rdbuf();
+        copyFile(concatenatePath(SrcDir, dirent_list[i]->d_name).c_str(), concatenatePath(DestDir, dirent_list[i]->d_name).c_str());
     }
 
     while (num_entries--) {
@@ -96,3 +93,11 @@
     free(dirent_list);
     return;
 }
+
+void copyFile(const char* SrcDir, const char* DestDir) {
+    std::ifstream src(SrcDir, std::ios::binary);
+    std::ofstream dst(DestDir, std::ios::binary);
+    dst << src.rdbuf();
+    return;
+}
+
