How did you wire your button? any pull-down? how do you prevent bouncing?
You should code your data this way
unsigned int rawData[] = {4500,4500, 500,1700, 550,1700, 500,1700, 550,600, 500,600, 500,550, 600,550, 550,600, 500,1650, 550,1750, 500,1700, 500,600, 550,600, 500,600, 500,600, 550,550, 550,600, 500,1700, 550,600, 500,600, 500,550, 550,600, 550,600, 500,550, 550,1700, 550,600, 500,1650, 550,1750, 500,1650, 550,1750, 500,1700, 500,1750, 500};
const unsigned int rawDataCount = sizeof(rawData) / sizeof(rawData[0]);
and send the data using ir.sendRaw(rawData, rawDataCount, 38); to be on the safe side if you miscounted the number of elements