Автор исходники целиком так и не предоставил (какие ваши доказательтва?) В другом треде были какие-то обрывки, но без критичных отдельных функций. Я допускаю, что наиболее вероятный источник проблемы: 1) код является UB (undefined behaviour) с точки зрения компилятора (вроде того же "++" или эффектов связанных с restrict). Но поскольку автор ничего знать кроме F5 не хочет, статическими анализаторами не пользуется, и даже наверное варнинги не включает, и само собой исходники -- коммерческий секрет такого уровня что Microsoft и рядом не стоял, то вряд ли мы что узнаем. И предположение 2) проблемы настройки и конфигурации тулчейна, Libc и т.п. (т.е. баг в других системах не воспроизводим), например не выровненный стек, недостаток пространства на стеке и т.п.
Про restrict см. ссылку:
https://en.cpprefe …nce.com/w/c/io/fprintf и
https://ru.wikipedia.org/wiki/Restrict
Обращаю внимание, что в C99 декларация sprintf имеет вид:
int sprintf(char *restrict buffer, const char *restrict format, ...);
Что наталкивает на мысль что варианты когда buffer пересекается со строкой формата (у автора нет этой проблемы) или с аргументами (возможно что есть) -- не допустимы.