Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- char *strtab[32] = {"CBI PHJ MJH MIJ XBBH MBAE XFC MBBI XBAA XIH XGA XGG ",
- "GJ MBCF XED MDI PEI PFC XHB MEJ PDG XFC PGE ",
- "JE XGH XBAI MBCC XII PFB MHH XBCC PDI PFC XHE MFG XGF ",
- "MGD PBCH MHE XBAE PFH XHF PBCD MFE XIG PDE PHJ XBBA PDE XJH XGG PIJ XFG XJA PEG PGE ",
- "MDF MED PJA MHJ XBCH MHF XHG XBAG XEB PFE XHG PEB MFJ PDG PFA XBAD PFJ ",
- "BGI MBAG XBBJ XFJ MEE PBBE MBAA XBAF MJI XJG PBAB MBBF PFG PFD ",
- "CJH XDI XEI XEF XDC MBCC MBBA PJD MHI PGH MBBA PDG MBCD PIF XHI XJH ",
- "ED MFE PHC XBAG MEH MFD XBBE PFD MBCD MGF PGE XGA MJC MFC PGD MGE XBCE XFI XFA MHC ",
- "CHC MBBG PDH MEF XJC XHB XJI XGH PBAG MBBI MBCF MFE PGF XBAA MDJ PBAC ",
- "BGD XBAA MBCA PEG PHG XBAD MBBJ PEI MBAE XBCB XHH MGA XHF XEI XJI XED XIH XFI XBBD ",
- "EGC PFE PGE MFG XBBH MIC MBBE PFC PDF XFF MHD XBAF XDI PEI MBBH MBAE MED ",
- "MCI XIF XIA MEC XBAA MFB XGB PEI PBCF PEA PBAA XIF XIB MJG MBBJ MGF PFA MIE PGG XID XDJ ",
- "MBE PFD MBAE XFB PBBD PBBH XFA PGF XDH XJI MJJ MDF PEA XBBE XEJ PHG XEI MBAG ",
- "MIB PEE PHF MFI XDG PDD MII XEF PEB XBBH XHB PIJ XID XDI PEA PFE MJG PIF MIH PFA ",
- "MEJ XGF XEE PDG XBCB PDG XJF XBAB XBBD MBAD PIB PBAJ MBAI MGG PDH XBBB MEF XFG MFC PJJ ",
- "CA XBAC XFB PGB XBBD XGH PJH PDD MDD XEB MID PFH PHI MIF MFJ PFG ",
- "BDB XGC XBAE PFG MBBJ XHG PIE XIC MEH PDG PFF XIC PII PBCH MBBH ",
- "H PEH XEB MEB MJF PHC XBAD PBBA XFC PBBB XBCH XFC XBBI MGA ",
- "CAB MHB XEH PHA PBAB MBAE PEA MEF PGD XHD PDI XJJ MBCG MBAH XGG XED XGC XBCE ",
- "MHF XFG MDE PBBD XBBH PJI MBBJ XGE PFC MJF MJD PDJ PDI ",
- "BHB MBCF MGC XBAC XDF PGD PGC MDJ MED XBBJ XBAG ",
- "E PHG MBBG XHE XIF XHI MJE PBCG MBBD XHI XDG ",
- "CGA PJF MFH MEC MFI MBAJ PGJ XBCG PJG MEF MBAE XIG PIB ",
- "BHC XBCD PDC MBAD XFI MJF XBBE PBCB PBCH MBBB XGI MIH MBCG ",
- "BFI XGG XGI MFJ MBBD PFC PBCH XIH MEC XIJ MJC MDD XJF PED PDH MFE XID PHI MBAC ",
- "MGC XBAD PJB XFJ PBAG MHH MBAB XGB MFI XGE MDH PGI MHB PHE PJF MBCH XEI XEI XEG XBBI ",
- "B XFJ XBBD XFJ XHF XBCC XDE XII PHB XDI PBAE MFD MHD PGG XJD MFJ ",
- "EBH XGG PBAG PGG MIE MBBC MHI XBAI MGE MDJ MBAF PGC MBBB ",
- "BEF XBBI MGH XBBG XHF PBAH PHA PDF XGB XHJ MFA MJI MHC MHI XBBA ",
- "MDC XFC XFA MDJ PDC PFH XBAF XBCD XIA PDJ XGE XBAH MJE PGF ",
- "FEH MDJ MBBD XDI MIE XHC PBBH XFB XHF MGJ PIE XEE MJG XBAD MEI XEE XDF MDD MHD MEH XIH ",
- "CCI XGH MFJ MFE XJD XHF MDJ MJJ XHI PBBG MBBF MHH "};
- int output[4];
- int sub_401250(char a1, int a2)
- {
- return (a1 >> (2 * a2)) & 3;
- }
- char trans(int ser,int len)
- {
- int v1; // eax@2
- char v6; // [sp+17h] [bp-5h]@3
- int i; // [sp+18h] [bp-4h]@3
- unsigned int j; // [sp+18h] [bp-4h]@6
- v6 = ser;
- for ( j = 0; j < 4; ++j )
- {
- v1 = sub_401250(v6, j) + 4 * len;
- output[j] = v1;
- }
- return v1;
- }
- void shift17(char *a1)
- {
- int len;
- int i; // [sp+14h] [bp-4h]@3
- len = strlen(a1);
- for ( i = 0; i < len; ++i )
- {
- if ( a1[i] == ' ' ){
- break;
- }
- a1[i] += 17;
- }
- }
- int tonum(char a1)
- {
- return a1 >= 'A' && a1 < 'K';
- }
- int oper(signed int a1, signed int a2, char a3)
- {
- int v4; // [sp+4h] [bp-4h]@0
- switch ( a3 )
- {
- case 'P':
- v4 = a2 + a1;
- break;
- case 'M':
- v4 = a1 - a2;
- break;
- case 'U':
- v4 = a2 * a1;
- break;
- case 'V':
- if ( !a2 )
- a2 = 1;
- v4 = a1 / a2;
- break;
- case 'X':
- v4 = a2 ^ a1;
- break;
- default:
- return v4;
- }
- return v4;
- }
- signed int sub_4010D0(const char *str)
- {
- char c; // [sp+13h] [bp-1Dh]@3
- int v3[3]; // [sp+14h] [bp-1Ch]@1
- unsigned int len; // [sp+20h] [bp-10h]@1
- int v5; // [sp+24h] [bp-Ch]@1
- unsigned int idx; // [sp+28h] [bp-8h]@1
- char v7; // [sp+2Fh] [bp-1h]@9
- idx = 0;
- len = strlen(str);
- v5 = 0;
- v3[0] = 0;
- v3[1] = 0;
- v3[2] = 2;
- while ( (signed int)idx <= (signed int)len )
- {
- c = str[idx];
- if ( v5 >= 2 )
- return -1;
- if ( tonum(c) )
- {
- v3[v5] *= 10;
- v3[v5] = c + v3[v5] - 'A';
- }
- else if ( c )
- {
- if ( c != 'P' && c != 'V' && c != 'M' && c != 'U' && c != 'X' )
- {
- if ( c == ' ' )
- ++v5;
- }
- else
- {
- v7 = c;
- }
- }
- else if ( v5 > 1 )
- {
- v3[0] = oper(v3[0], v3[1], v7);
- v3[1] = 0;
- --v5;
- }
- if ( v5 > 1 )
- {
- v3[0] = oper(v3[0], v3[1], v7);
- v3[1] = 0;
- --v5;
- }
- ++idx;
- }
- return v3[0];
- }
- int calc(int ser,int len){
- int i;
- char dest[1024];
- char v3;
- char text[1024];
- trans(ser,len);
- for ( i = 0; i < 32; ++i )
- {
- sprintf(dest, "P%d ", output[i % 4]);
- shift17(&dest[1]);
- strcat(dest,strtab[i]);
- v3 = (sub_4010D0(dest) & 0xFF);
- text[i] = v3;
- //Text[i] = v3;
- }
- text[32] = '\0';
- printf("%s\n",text);
- return 0;
- }
- int main(){
- int i,j;
- for(i = 0;i < 256;i++){
- for(j = 1;j < 32;j++){
- calc(i,j);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement