private string ConvertCode(string Address)
{
uint OriginalCodeAddress = BitConverter.ToUInt32(Utilities.GetByteArrayFromByteString(Address).Reverse().ToArray(), 0);
uint ConvertedMemoryAddress = OriginalCodeAddress + 0x14000000u; //High memory region
if (IsValidMemoryAddress(ConvertedMemoryAddress))
{
return Utilities.GetStringFromByteArray(BitConverter.GetBytes(ConvertedMemoryAddress).Reverse().ToArray());
}
uint ConversionModifier = GetConversionModifier(ConvertedMemoryAddress);
if (ConversionModifier == 0)
{
return Address;
}
uint Offset = ConvertedMemoryAddress - ConversionModifier;
ConvertedMemoryAddress = 0x08000000 + Offset;
if (IsValidMemoryAddress(ConvertedMemoryAddress))
{
return Utilities.GetStringFromByteArray(BitConverter.GetBytes(ConvertedMemoryAddress).Reverse().ToArray());
}
ConvertedMemoryAddress = 0x00100000 + Offset;
if (IsValidMemoryAddress(ConvertedMemoryAddress))
{
return Utilities.GetStringFromByteArray(BitConverter.GetBytes(ConvertedMemoryAddress).Reverse().ToArray());
}
return Address;
}