// eq.cpp: SOTM33 - 0x90 - Nicola Cuomo // #include struct _val { int op; int val; } val1[] = { 0,0x1D9BDC45, 1,0xAD45DFE2, 0,0x68656C6C, 1,0x41776169, 0,0x69747320, 0,0x64726976, 1,0x6E757473, 1,0x65683F21 }, val2[] = { 0,0x74519745, 0,0xDEADBEEF, 1,0x17854165, 0,0x73686F77, 1,0x206E6F20, 0,0x6D657263, 1,0x79212121 }; int main(int argc, char* argv[]) { int i; int v1 = 0x4e334431; int v2 = 0x5cc80E31; char asd[6]; for( i = 0; i < sizeof( val1 ) / sizeof( struct _val ); i++ ) { if( !val1[i].op ) v1 += val1[i].val; else v1 -= val1[i].val; *((int * )asd) = val1[i].val; asd[4] = 0; //printf( "%s\n", asd ); } printf( "0x%x\n", v1 ); for( i = 0; i < sizeof( val2 ) / sizeof( struct _val ); i++ ) { if( !val2[i].op ) v2 += val2[i].val; else v2 -= val2[i].val; *((int * )asd) = val2[i].val; asd[4] = 0; //printf( "%s\n", asd ); } printf( "0x%x\n", v2 ); //resolve for( i = sizeof( val2 ) / sizeof( struct _val ); i >= 0; i-- ) { if( !val1[i].op ) v2 -= val1[i].val; else v2 += val1[i].val; } printf( "0x%x\n", v2 ); *((int * )asd) = v2; asd[4] = 0; printf( "%s\n", asd ); return 0; }