analyze the problem. walkthrough the code.
I would like to charge for this solution $10 to Renewal Computer Services, if I may post here (kids & teens free).
when -50 is reached, doesn't blow past the maxvalue+1U and cause a cpu-hogging forever loop, it doesn't actually reach -50 equivalent (UINTMAX-49).

#include <cstdint>
#define ufordown0(var,maxvalue,step) for(uint64_t var=maxvalue; var>maxvalue; var-=step)
/* 
Example: ufordown0(i,200U,50U) {
}
*/