Can you explain why you changed this:
Code:
decompress(self + get_u64(&Meta_Section_Header[i].dataOffset), get_u64(&Meta_Section_Header[i].dataSize), bfr, get_u16(&Elf_Header.e_phentsize));
to this:
Code:
decompress(self + get_u64(&Meta_Section_Header[i].dataOffset), get_u64(&Meta_Section_Header[i].dataSize), program_sections + (i * get_u16(&Elf_Header.e_phentsize)), get_u16(&Elf_Header.e_phentsize));
and why you dropped the brf allocation, after the conditional?
From my understanding of this, there's a check for encrypted section, if encrypted decrypt, then check if compressed, if compressed decompress, then copy buffer to the relevant section.