私の簡略化されたコードは次のようになります。
char decrypted[64] = "P@ssw0rd ";
int realsize = 8;
realloc(decrypted, realsize);
char *dec2 = (char *) malloc(realsize+1); // Exe crashes at this point
char *dec2に関係していると推測しています が、これは何らかの理由で Win XP をクラッシュさせるだけです。