- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int main(int argc, char **argv)
- {
- int i = 0;
- int32_t eax, edx, edx_tmp;
- int16_t ax, dx;
- int8_t al, dl;
- if (argc != 2)
- {
- printf("Specify name!\n");
- exit(1);
- }
- for(i=0;i<strlen(argv[1]);i++)
- {
- // printf("%x\n",argv[1][i] & 0x61);
- al = argv[1][i];
- if (i == 0)
- {
- edx = 0x4de1;
- edx_tmp = edx;
- } else {
- edx = ax;
- edx_tmp = edx;
- }
- // printf("edx == %x\n",edx);
- edx = (edx >> 8) & 0xff;
- // printf("(edx >> 2) & 0xff == %x\n",edx);
- // exit(1);
- eax = al ^ edx;
- printf("%0.2X",eax);
- eax = eax + edx_tmp;
- eax = eax * 0xce6d;
- ax = eax;
- ax = ax + 0x58bf;
- }
- printf("\n");
- }