You have stack buffer out of bounds write. On line 52
you declare h
an array of 70
unsigned int
s. On line 57
you store reference to such array. Later, on line 35
you write out of bounds, one element past end of the array. The _SPR_history[i]
writes to _SPR_history[70]
. Created an issue: https://github.com/X64X2/sh/issues/1
You can always take a look how for example Windows 3.11 and earlier did it for their *.rtf file format and their “write.exe” editor / viewer / renderer (if you want to call it that way).