Dava is a decompiler for arbitrary Java bytecode. It can be used to decompile bytecode produced by Java compilers, compilers for other languages (AspectJ, SML, C) that generate Java bytecode and tools like Java bytecode obfuscators, instrumentors and optimizers. Dava detects Java constructs using novel Structure Encapsulation algorithms (a detailed explanation of this can be found in Jerome's Msc