#include <stdio.h>
typedef unsigned int uint32_t;
int main () {
unsigned int num_rounds=2;
uint32_t v[2]={0x11223344,0xEEDDCCBB};
uint32_t const k[4]={0x00000011,0x00000022,0x00000033,0x00000044};
encipher(num_rounds, v[2], k[4]);
return 0;
}
void encipher(unsigned int num_rounds, uint32_t v[2], uint32_t const k[4])
{
unsigned int i;
uint32_t v0=v[0], v1=v[1], sum=0, delta=0x9E3779B9;
for (i=0;i<num_rounds;i++)
{
v0+=(((v1<<4)^(v1>>5))+v1)^(sum+k[sum&3]);
sum+=delta;
v1+=(((v0<<4)^(v0>>5)+v0)^(sum+k[(sum>>11)&3]));
}
v[0]=v0; v[1]=v1;
printf("%X",v[0]);
}