void PatchResourceDirectoryTable(ByteBuffer resources) { resources.Advance(12); var entries = resources.ReadUInt16() + resources.ReadUInt16(); for (int i = 0; i < entries; i++) PatchResourceDirectoryEntry(resources); }
void PatchResourceDirectoryEntry(ByteBuffer resources) { resources.Advance(4); var child = resources.ReadUInt32(); var position = resources.position; resources.position = (int)child & 0x7fffffff; if ((child & 0x80000000) != 0) PatchResourceDirectoryTable(resources); else PatchResourceDataEntry(resources); resources.position = position; }