fork download
  1. #include <stdio.h>
  2. const unsigned long APP_MASK = 0xA80980B1;
  3. unsigned long uds_calc_key(void);
  4. unsigned long uds_calc_key(void)
  5. {
  6. unsigned long seed=0x711D89D3;
  7. unsigned long tmpseed = seed;
  8. unsigned long key_1 = tmpseed ^ APP_MASK;
  9. unsigned long seed_2 = tmpseed;
  10. seed_2 = (seed_2 & 0x55555555) << 1 ^ (seed_2 & 0xAAAAAAAA) >> 1;
  11. seed_2 = (seed_2 ^ 0x33333333) << 2 ^ (seed_2 ^ 0xCCCCCCCC) >> 2;
  12. seed_2 = (seed_2 & 0x0F0F0F0F) << 4 ^ (seed_2 & 0xF0F0F0F0) >> 4;
  13. seed_2 = (seed_2 ^ 0x00FF00FF) << 8 ^ (seed_2 ^ 0xFF00FF00) >> 8;
  14. seed_2 = (seed_2 & 0x0000FFFF) << 16 ^ (seed_2 & 0xFFFF0000) >> 16;
  15. unsigned long key_2 = seed_2;
  16. unsigned long key = key_1 + key_2;
  17. //return key;
  18. printf("output = 0x%8x\n",key);
  19. }
  20. int main(void)
  21. {
  22.  
  23. uds_calc_key();
  24. return 0;
  25. }
Success #stdin #stdout 0s 5344KB
stdin
Standard input is empty
stdout
output = 0x78bc2c7b