a small correction:

if (decoded.compare(0, 2, "AA") == 0)
return decoded.substr(2, decoded.rfind("ZZ") - 2);
else if (decoded.compare(0, 10, "[FLASHGET]") == 0)
return decoded.substr(10, decoded.rfind("[FLASHGET]") - 10);

return decoded;