the function that sneakily changes DS also changes SI.fun.this is definitely hand written assembly because compilers make more sense than this