diff --git a/twrp-functions.cpp b/twrp-functions.cpp
index 29c70a5..1d2d632 100644
--- a/twrp-functions.cpp
+++ b/twrp-functions.cpp
@@ -424,15 +424,17 @@
 }
 
 int TWFunc::read_file(string fn, string& results) {
-        ifstream file;
-        file.open(fn.c_str(), ios::in);
-        if (file.is_open()) {
-                file >> results;
-                file.close();
-                return 0;
+	ifstream file;
+	file.open(fn.c_str(), ios::in);
+
+	if (file.is_open()) {
+		file >> results;
+		file.close();
+		return 0;
 	}
-        LOGINFO("Cannot find file %s\n", fn.c_str());
-        return -1;
+
+	LOGINFO("Cannot find file %s\n", fn.c_str());
+	return -1;
 }
 
 int TWFunc::read_file(string fn, vector<string>& results) {
@@ -498,7 +500,7 @@
 	return temp;
 }
 
- int TWFunc::drop_caches(void) {
+int TWFunc::drop_caches(void) {
 	string file = "/proc/sys/vm/drop_caches";
 	string value = "3";
 	if (write_file(file, value) != 0)
@@ -714,7 +716,7 @@
 	string::size_type i = 0;
 	int firstbyte = 0, secondbyte = 0;
 	char header[3];
-        
+
 	ifstream f;
 	f.open(fn.c_str(), ios::in | ios::binary);
 	f.get(header, 3);
@@ -722,13 +724,12 @@
 	firstbyte = header[i] & 0xff;
 	secondbyte = header[++i] & 0xff;
 
-	if (firstbyte == 0x1f && secondbyte == 0x8b) {
+	if (firstbyte == 0x1f && secondbyte == 0x8b)
 		return 1; // Compressed
-	} else if (firstbyte == 0x4f && secondbyte == 0x41) {
+	else if (firstbyte == 0x4f && secondbyte == 0x41)
 		return 2; // Encrypted
-	} else {
+	else
 		return 0; // Unknown
-	}
 
 	return 0;
 }
