rendered paste bodyfor teh linny, here ya go
void WriteJmp(DWORD Address, DWORD Destination, DWORD AmountOfNops)
{
BYTE jmp[] = {0x00, 0x00, 0x00, 0x00, 0x00};
DWORD offset = Destination - (Address + 2);
if(offset < 0x7F) || (offset > 0xFFFFFF80)
{
jmp[0] = 0xEB;
jmp[1] = offset;
memcpy((LPVOID)Address, jmp, 2);
Address += 2;
}
else
{
offset -= 3;
jmp[0] = 0xE9;
jmp[1] = offset;
jmp[2] = (offset >> 8);
jmp[3] = (offset >> 16);
jmp[4] = (offset >> 24);
memcpy((LPVOID)Address, jmp, 5);
Address += 5;
}
for(int i = 0; i < AmountOfNops; i++)
{
*((BYTE*)Address) = 0x90;
Address++;
}
}