Obfuscation using LLVM loop transformation passes

This project consisted of implementing transformation passes over LLVM IR for loop transformations, with the goal of obfuscating the IR code. Transformation passes were implemented within LLVM using the LLVM API.