PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : دوستان اشنا به زبان c لطفا مطالعه کنید



hamed.ramzi2
November 1st, 2014, 17:15
با سلام

خوب برای تشخیص و ساخت جنرتور لایسنس نیاز به همکاری سایر دوستان هست.

خوب ابتدا در فایل پیوست من فایل دکامپایل شده لایت اسپید رو میزارم اگر نیاز شد ببینید

ولی در کل سیستم لایسنس بر پایه این چند فنکشین هستت




License::License(void )(
_unknown_ __eax // r0
)
{// addr = 0x08060A70
signed int __ebp; // r6

__eax = __eax;
return __eax;
}

License::License(void )(
_unknown_ __eax // r0
)
{// addr = 0x08060A78
signed int __ebp; // r6

__eax = __eax;
return __eax;
}

License::~License, void ?...?(
_unknown_ __eax // r0
)
{// addr = 0x08060A80
signed int __ebp; // r6

__eax = __eax;
return __eax;
}

License::~License(void )(
_unknown_ __eax // r0
)
{// addr = 0x08060A88
signed int __ebp; // r6

__eax = __eax;
return __eax;
}

perr(char * )(
_unknown_ __eax // r0
)
{// addr = 0x08060A90
signed int __ebp; // r6

__eax = __eax;
_push(__eax);
_push("[ERROR] %s\n");
_push(__imp__stderr);
fprintf();
return __eax;
}

createHostId(char & * , int )(
intOrPtr __edx // r3
)
{// addr = 0x08060AAC
char _v16; // _cfa_fffffff0
signed int _v36; // _cfa_ffffffdc
signed int _v52; // _cfa_ffffffcc
char _v124; // _cfa_ffffff84
char _v140; // _cfa_ffffff74
char _v156; // _cfa_ffffff64
char _v252; // _cfa_ffffff04
intOrPtr _v256; // _cfa_ffffff00
intOrPtr _v260; // _cfa_fffffefc
intOrPtr _v264; // _cfa_fffffef8
intOrPtr _v268; // _cfa_fffffef4
signed int _v272; // _cfa_fffffef0
signed int _v276; // _cfa_fffffeec
intOrPtr _v280; // _cfa_fffffee8
signed int __ebx; // r1
_unknown_ __edi; // r4
_unknown_ __esi; // r5
signed int __ebp; // r6
intOrPtr _t55; // _t55
intOrPtr _t56; // _t56
intOrPtr _t57; // _t57
intOrPtr _t58; // _t58
intOrPtr* _t62; // _t62
intOrPtr _t66; // _t66
_unknown_ _t73; // _t73
char* _t75; // _t75
_unknown_ _t86; // _t86
char* _t88; // _t88

__esp = __esp - 272;
_push(384);
_push(0);
_push(ZcreateHostId);
_v256 = _t55;
_v260 = __edx;
_v272 = 0;
open64();
_v264 = _t55;
__esp = __esp + 16;
_t56 = _t55 + 1;
if(_t56 == 0) {
_push(_t86);
_push(384);
_push(65);
_push(ZcreateHostId);
open64();
_v264 = _t56;
__esp = __esp + 16;
__eflags = _v264 - 255;
_t57 = -1;
if(_v264 != 255) {
_v272 = 1;
goto L1;
}
} else {
L1:
_t58 = &_v124;
_push(_t88);
_push(_t58);
_push(_v264);
_push(3);
__fxstat64();
_v268 = _t58;
__esp = __esp + 16;
if(_t58 + 1 != 0) {
_t66 = (_v272 << 2) + _v272 + (_v272 << 2) + _v272 + 1;
_v276 = 0;
if(_t66 > 0) {
_v280 = _t66;
goto L6;
do {
while(1) {
L6:
__esp = __esp - 12;
MD5_Init( &_v252);
__esp = __esp + 8;
_push(8);
_push( &_v36);
_push( &_v252);
MD5_Update();
__esp = __esp + 12;
_push(4);
_push( &_v52);
_push( &_v252);
MD5_Update();
_pop(__ecx);
_pop(__ebx);
_push( &_v252);
_push( &_v156);
_t73 = MD5_Final();
__esp = __esp + 16;
if(_v272 != 0) {
break;
}
_push(_t73);
_push(16);
_t75 = &_v140;
_push(_t75);
_push(_v264);
read();
__esp = __esp + 16;
if(_t75 == 16) {
__ecx = 16;
asm("cld ");
_t88 = &_v156;
asm("rep cmpsb ");
if(__eflags == 0) {
goto L5;
} else {
goto L8;
}
L19:
} else {
L8:
_v276 = _v276 + 1;
_v268 = -1;
if(_v280 > _v276) {
continue;
} else {
}
}
goto L10;
}
_push(0);
_push(0);
_push(0);
_push(_v264);
__ebx = _v52;
lseek64();
__esp = __esp + 12;
_push(16);
_push( &_v156);
_push(_v264);
write();
__esp = __esp + 12;
_push( &_v124);
_push(_v264);
_push(3);
__fxstat64();
__esp = __esp + 16;
__eflags = _v52 - _v52;
if(_v52 != _v52) {
goto L5;
}
goto L10;
L5:
_v276 = _v276 + 1;
__eflags = _v280 - _v276;
} while(_v280 > _v276);
}
}
L10:
__esp = __esp - 12;
_push(_v264);
close();
__esp = __esp + 16;
if(_v268 == 255) {
__esp = __esp - 12;
_push(ZcreateHostId);
unlink();
} else {
_push(_v52 ^ _v36);
_push(136099744);
_push(_v260);
_t62 = _v256;
_push( *_t62);
snprintf();
*_v256 = *_v256 + _t62;
}
__esp = __esp + 16;
_t57 = _v268;
}
__esp = &_v16;
return _t57;
goto L19;
}

isXEN(void )(
_unknown_ __ebx, // r1
_unknown_ __eflags // r9
)
{// addr = 0x08060D04
_unknown_ _v8; // _cfa_fffffff8
char _v4108; // _cfa_ffffeff4
signed int __ebp; // r6
_unknown_ _t5; // _t5
_unknown_ _t9; // _t9

_push(__ebx);
__esp = __esp - 4100;
_push(136083489);
_push("/proc/xen/capabilities");
_push(4096);
_push( &_v4108);
_t5 = __ecx->readFile(char * , int , char * , 2)(__edx, __eflags);
_t9 = 0;
__esp = __esp + 16;
if(_t5 != 0) {
__esp = __esp - 12;
_push("find /proc/irq/ | grep xenbus");
system();
__esp = __esp + 16;
__eflags = _t5;
if(_t5 != 0) {
goto L2;
} else {
return 2;
}
} else {
_t9 = 2;
L2:
return _t9;
}
}

handler(int )(
_unknown_ __eax, // r0
_unknown_ __esi // r5
)
{// addr = 0x08060D5C
_unknown_ _v12; // _cfa_fffffff4
intOrPtr _v16; // _cfa_fffffff0
intOrPtr _v40; // _cfa_ffffffd8
signed int __ebp; // r6
_unknown_ _t14; // _t14

_push(1);
_push( &no_vmware);
longjmp();
_push(_t14);
_push(__esi);
__esp = __esp - 12;
_v40 = 1;
_push(handler(int ));
_push(11);
signal();
*__esp = &no_vmware;
_setjmp();
__esp = __esp + 16;
if(__eax != 0) {
__esp = __esp - 8;
_v16 = 0;
_push(0);
_push(11);
signal();
return _v16;
} else {
asm("in eax, dx");
__esp = __esp - 8;
_push(0);
_push(11);
signal();
return _v16;
}
}

isVMware(void )(
_unknown_ __eax, // r0
_unknown_ __esi // r5
)
{// addr = 0x08060D70
_unknown_ _v8; // _cfa_fffffff8
intOrPtr _v12; // _cfa_fffffff4
signed int __ebp; // r6

_push(__esi);
__esp = __esp - 12;
_v12 = 1;
_push(handler(int ));
_push(11);
signal();
*__esp = &no_vmware;
_setjmp();
__esp = __esp + 16;
if(__eax != 0) {
__esp = __esp - 8;
_v12 = 0;
_push(0);
_push(11);
signal();
return _v12;
} else {
asm("in eax, dx");
__esp = __esp - 8;
_push(0);
_push(11);
signal();
return _v12;
}
}

License::detectVMWare(void )(
signed int __ebx, // r1
_unknown_ __ecx, // r2
_unknown_ __edx, // r3
char* __edi, // r4
_unknown_ __esi, // r5
_unknown_ __eflags // r9
)
{// addr = 0x08060DE0
char _v16; // _cfa_fffffff0
intOrPtr _v32; // _cfa_ffffffe0
intOrPtr _v36; // _cfa_ffffffdc
intOrPtr _v40; // _cfa_ffffffd8
char _v44; // _cfa_ffffffd4
signed char _v48; // _cfa_ffffffd0
char _v4112; // _cfa_ffffeff0
char _v4280; // _cfa_ffffef48
signed int __ebp; // r6
signed int _t20; // _t20
signed char _t21; // _t21
signed int _t23; // _t23
signed int _t24; // _t24
signed int _t26; // _t26
char* _t35; // _t35
_unknown_ _t38; // _t38
_unknown_ _t43; // _t43
signed int* _t44; // _t44

_t37 = __esi;
__edi = __edi;
__edx = __edx;
__ecx = __ecx;
_t34 = __ebx;
_push(__edi);
_push(__esi);
_push(__ebx);
__esp = __esp - 44;
_t20 = isXEN(void )(__ebx, __eflags);
if(_t20 == 0) {
fork();
__eflags = _t20;
_t34 = _t20;
if(__eflags < 0) {
__esp = __esp - 12;
_push("fork() failed");
_t21 = _t20->error(char * , ... )();
__esp = &(__esp[4]);
goto L10;
} else {
if(__eflags == 0) {
__esp = __esp - 8;
_v36 = 0;
_v32 = 0;
_v44 = 0;
_v40 = 0;
_push( ?_? ( &_v44));
_push(4);
setrlimit64();
_t23 = isVMware(void )( &_v44, __esi);
*__esp = _t23;
exit();
_push(_t43);
_t44 = __esp;
_push(_t37);
_push(_t34);
__esp = __esp - 4196;
_t35 = &_v4280;
_push(_t35);
_push("/proc/vz/vestat");
_push(3);
__xstat64();
_t38 = 0;
__esp = &(__esp[4]);
__eflags = _t23;
if(__eflags != 0) {
L15:
_t24 = isXEN(void )(_t35, __eflags);
__eflags = _t24;
if(_t24 != 0) {
__esp = &_v16;
_pop(__ebx);
_pop(__esi);
return 2;
} else {
_t36 = _isVMWare;
__eflags = _isVMWare;
if(__eflags == 0) {
_push(136083489);
_push("/proc/cpuinfo");
_push(4096);
_t36 = &_v4112;
_push(_t36);
_t26 = __ecx->readFile(char * , int , char * , 2)(__edx, __eflags);
_pop(__edx);
_pop(__ecx);
*((char*)(_t44 + _t26 + -4104)) = 0;
_push("User Mode Linux");
_push(_t36);
strstr();
__esp = &(__esp[4]);
__eflags = _t26;
if(_t26 == 0) {
goto L18;
} else {
__esp = &_v16;
_pop(__ebx);
_pop(__esi);
return 4;
}
} else {
_t38 = 3;
L18:
__esp = &_v16;
_pop(__ebx);
_pop(__esi);
return _t38;
}
}
} else {
_push(_t23);
_push(_t35);
_push("/proc/vz/vzquota");
_push(3);
__xstat64();
__esp = &(__esp[4]);
__eflags = _t23 + 1;
if(__eflags == 0) {
__esp = &_v16;
_pop(__ebx);
_pop(__esi);
return 0;
} else {
goto L15;
}
}
} else {
__edi = &_v48;
do {
__esp = __esp - 12;
_t21 = my_sleep(100);
__esp = &(__esp[2]);
_push(1);
_push(__edi);
_push(_t34);
waitpid();
__esp = &(__esp[4]);
__eflags = _t21 - _t34;
if(_t21 != _t34) {
goto L5;
} else {
_t21 = _v48;
__eflags = _t21 & 127;
if(__eflags != 0) {
goto L5;
} else {
_t20 = __eflags == 0 & 255;
_isVMWare = _t20;
goto L1;
}
}
goto L23;
L5:
_t37 = 1;
__eflags = 1 - 9;
} while(1 <= 9);
__esp = __esp - 8;
_push(9);
_push(_t34);
kill();
__esp = &(__esp[4]);
L10:
__esp = &_v16;
_pop(__ebx);
_pop(__esi);
_pop(__edi);
return _t21;
}
}
} else {
L1:
__esp = &_v16;
_pop(__ebx);
_pop(__esi);
_pop(__edi);
return _t20;
}
L23:
}

detectVPS(void )(
_unknown_ __ebx, // r1
_unknown_ __ecx, // r2
_unknown_ __edx, // r3
_unknown_ __eflags // r9
)
{// addr = 0x08060EAC
char _v12; // _cfa_fffffff4
char _v4108; // _cfa_ffffeff4
char _v4204; // _cfa_ffffef94
_unknown_ __esi; // r5
signed int __ebp; // r6
_unknown_ _t9; // _t9
_unknown_ _t12; // _t12
char* _t18; // _t18
_unknown_ _t20; // _t20

__edx = __edx;
__ecx = __ecx;
_push(__ebx);
__esp = __esp - 4196;
_t18 = &_v4204;
_push(_t18);
_push("/proc/vz/vestat");
_push(3);
__xstat64();
_t20 = 0;
__esp = __esp + 16;
if(_t9 != 0) {
L2:
if(isXEN(void )(_t18, _t26) != 0) {
__esp = &_v12;
_pop(__ebx);
return 2;
} else {
_t19 = _isVMWare;
if(_isVMWare == 0) {
_push(136083489);
_push("/proc/cpuinfo");
_push(4096);
_t19 = &_v4108;
_push(_t19);
_t12 = __ecx->readFile(char * , int , char * , 2)(__edx, __eflags);
_pop(__edx);
_pop(__ecx);
*((char*)(__ebp + _t12 + -4104)) = 0;
_push("User Mode Linux");
_push(_t19);
strstr();
__esp = __esp + 16;
__eflags = _t12;
if(_t12 == 0) {
goto L5;
} else {
__esp = &_v12;
_pop(__ebx);
return 4;
}
} else {
_t20 = 3;
L5:
__esp = &_v12;
_pop(__ebx);
return _t20;
}
}
} else {
_push(_t9);
_push(_t18);
_push("/proc/vz/vzquota");
_push(3);
__xstat64();
__esp = __esp + 16;
_t26 = _t9 + 1;
if(_t9 + 1 == 0) {
__esp = &_v12;
_pop(__ebx);
return 0;
} else {
goto L2;
}
}
}

getMAC(ifi_infochar * * , int , int * )(
_unknown_ __ebx, // r1
intOrPtr __ecx, // r2
intOrPtr __edx, // r3
_unknown_ __eflags, // r9
intOrPtr _a4 // _cfa_4
)
{// addr = 0x08060F70
_unknown_ _v16; // _cfa_fffffff0
intOrPtr _v20; // _cfa_ffffffec
intOrPtr _v24; // _cfa_ffffffe8
intOrPtr _v28; // _cfa_ffffffe4
intOrPtr _v32; // _cfa_ffffffe0
signed int __ebp; // r6
intOrPtr _t46; // _t46
_unknown_ _t66; // _t66
intOrPtr _t68; // _t68
intOrPtr _t80; // _t80
short _t83; // _t83

_t68 = _t46;
_v20 = __edx;
_v28 = __edx;
_v24 = __ecx;
*_a4 = detectVPS(void )(_t68, __ecx, __edx, __eflags);
if(_t68 == 0) {
_v32 = _v20;
goto L8;
} else {
_v32 = _v20;
do {
_t83 = *((short*)(_t68 + 24));
if(_t83 != 0) {
asm("cld ");
asm("rep cmpsb ");
if(_t83 != 0) {
__esp = __esp - 8;
_push( *(_t68 + 21) & 255);
_push( *(_t68 + 20) & 255);
_push( *(_t68 + 19) & 255);
_push( *(_t68 + 18) & 255);
_push( *(_t68 + 17) & 255);
_push( *(_t68 + 16) & 255);
_t66 = 136083489;
if(_v32 != _v28) {
_t66 = 136055055;
}
_push(_t66);
_push("%s%02X:%02X:%02X:%02X:%02X:%02X");
_push(_v24);
_push(_v32);
snprintf();
_t80 = _v20 + _t66;
_v32 = _t80;
_v20 = _t80;
_v24 = _v24 - _t66;
__esp = __esp + 48;
}
}
_t68 = *((intOrPtr*)(_t68 + 44));
} while(_t68 != 0);
L8:
if(_v32 == _v28) {
L11:
if(createHostId(char & * , int )(_v24) + 1 == 0) {
createHostId(char & * , int )(_v24);
_v32 = _v20;
} else {
_v32 = _v20;
}
L13:
_v32 = _v32 - _v28;
return _v32;
}
if( *_a4 == 0) {
goto L13;
}
*_v32 = 44;
_v20 = _v20 + 1;
goto L11;
}
}

License::readSerialNum(char * , char * , int )(
_unknown_ __eflags, // r9
intOrPtr _a4, // _cfa_4
intOrPtr _a8, // _cfa_8
intOrPtr _a12 // _cfa_c
)
{// addr = 0x08061070
_unknown_ _v16; // _cfa_fffffff0
char __ebx; // r1
_unknown_ __edi; // r4
intOrPtr __esi; // r5
signed int __ebp; // r6
char _t9; // _t9
char _t11; // _t11
_unknown_ _t14; // _t14

_push(_a4);
_push("conf/serial.no");
_t14 = _a12 - 1;
_push(_t14);
__esi = _a8;
_push(__esi);
_t9 = __ecx->readFile(char * , int , char * , 2)(__edx, __eflags);
__esp = __esp + 16;
__ebx = _t9;
if(_t9 == 255) {
_push(_a4);
_push( &M081C2AF1);
_push(_t14);
_push(__esi);
__ebx = __ecx->readFile(char * , int , char * , 2)(__edx, __eflags);
__esp = __esp + 16;
}
if(__ebx >= 0) {
while(1) {
__esp = __esp - 12;
_t11 = *((char*)(__esi + __ebx - 1));
_push(_t11);
isspace();
__esp = __esp + 16;
__eflags = _t11;
if(_t11 == 0) {
break;
}
__ebx = __ebx - 1;
__eflags = __ebx;
}
*((char*)(__esi + __ebx)) = 0;
} else {
}
return __ebx;
}

getSerialNum(char * , char * , int )(
_unknown_ __ecx, // r2
signed int __edx, // r3
_unknown_ __eflags // r9
)
{// addr = 0x080610DC
char _v16; // _cfa_fffffff0
unsigned int _v60; // _cfa_ffffffc4
signed int _v64; // _cfa_ffffffc0
_unknown_ __ebx; // r1
_unknown_ __edi; // r4
_unknown_ __esi; // r5
signed int __ebp; // r6
_unknown_ _t47; // _t47
signed int _t48; // _t48
signed int _t50; // _t50
char _t51; // _t51
_unknown_ _t53; // _t53
char* _t54; // _t54
signed int _t56; // _t56
signed char _t62; // _t62
signed int _t64; // _t64
signed int _t69; // _t69
signed int _t81; // _t81
char* _t82; // _t82
_unknown_ _t91; // _t91
signed char _t105; // _t105
signed int _t112; // _t112
signed int _t113; // _t113
char _t114; // _t114
signed int _t124; // _t124
_unknown_ _t125; // _t125
signed int _t126; // _t126
_unknown_ _t127; // _t127

_push(_t127);
_push(_t81);
__esp = __esp - 64;
_push(__ecx);
_push(__edx);
_push(_t47);
_t128 = __edx;
_t48 = __eflags->readSerialNum(char * , char * , int )();
__esp = __esp + 16;
_t112 = _t48;
if(_t48 >= 0) {
*((char*)(__edx + _t48)) = 0;
_t82 = __edx + _t48;
while(_t128 != _t82) {
__esp = __esp - 12;
_t50 = *_t128;
_push(_t50);
isspace();
__esp = __esp + 16;
__eflags = _t50;
if(_t50 == 0) {
L8:
if(_t82 > _t128) {
L6:
__esp = __esp - 12;
_t51 = *((char*)(_t82 - 1));
_push(_t51);
isspace();
__esp = __esp + 16;
if(_t51 != 0) {
_t82 = _t82 - 1;
goto L8;
}
}
} else {
_t128 = _t128 + 1;
__eflags = _t128;
continue;
}
L9:
*_t82 = 0;
asm("cld ");
asm("repne scasb ");
_t53 = 0xfffffffffffffffe;
_t81 = 4;
if( !-1 - 16 > 4) {
L27:
_t54 = ERR_INV_SERIAL;
goto L28;
} else {
if(_t53 == 19) {
__eflags = *((char*)(_t128 + 4)) - 45;
if( *((char*)(_t128 + 4)) != 45) {
goto L27;
} else {
__eflags = *((char*)(_t128 + 9)) - 45;
if( *((char*)(_t128 + 9)) == 45) {
__eflags = *((char*)(_t128 + 14)) - 45;
if( *((char*)(_t128 + 14)) != 45) {
goto L27;
} else {
_t81 = 5;
goto L11;
}
L33:
} else {
goto L27;
}
}
} else {
L11:
_t124 = 0;
_t91 = _t81 + _t81 * 2 + _t128;
_t113 = _t128;
_t128 = _t128;
do {
*((char*)(__ebp + _t124 - 40)) = *_t113;
*((char*)(__ebp + _t124 - 36)) = *((intOrPtr*)(_t113 + _t81));
*((char*)(__ebp + _t124 - 32)) = *((intOrPtr*)(_t113 + _t81 * 2));
*((char*)(__ebp + _t124 - 28)) = *((intOrPtr*)(_t91 + _t124));
_t124 = _t124 + 1;
_t113 = _t113 + 1;
} while(_t124 <= 3);
_t125 = 0;
while(1) {
_t62 = *((intOrPtr*)(__ebp + _t125 - 40));
if(_t62 < 0) {
goto L27;
}
_t114 = *((intOrPtr*)((_t62 & 255) + &Base64::s_decodeTable));
if(_t114 == 255) {
goto L27;
} else {
_t64 = *(_t125 + &s_achLocSwitch) & 255;
_t125 = _t125 + 1;
*((char*)(__ebp + _t64 - 56)) = _t114;
if(_t125 <= 15) {
continue;
} else {
_t126 = 0;
do {
_v64 = _t126 + 1;
_t69 = *(__ebp + _t126 - 48) & 255;
_t128 = (_t69 << _t126 + 2 | _t69 >> 4 - _t126) & 63;
_t105 = (_t126 << _t126) + 42 ^ (( *(__ebp + _t126 - 56) & 255) << _t126 | ( *(__ebp + _t126 - 56) & 255) >> 6 - _t126) & 63 ^ (( *(__ebp + _t126 - 52) & 255) << _v64 | ( *(__ebp + _t126 - 52) & 255) >> 5 - _t126) & 63 ^ (_t69 << _t126 + 2 | _t69 >> 4 - _t126) & 63;
_t81 = 0;
while(_t81 < _t126) {
_t105 = (_t105 & 3) << 1 | (_t105 & 0xc) << 2 | (_t105 & 0x20) >> 5 | (_t105 & 0x10) >> 1;
_t81 = _t81 + 1;
__eflags = _t81;
}
if(_t105 != *((intOrPtr*)(__ebp + _t126 - 44))) {
goto L27;
} else {
goto L22;
}
goto L29;
L22:
_t126 = _v64;
} while(_t126 <= 3);
_t56 = _v60 >> 3 & 255;
if(_t56 < 1) {
_t54 = "Serial number type does not match server's edition!";
L28:
perr(char * )(_t54);
_t56 = -1;
}
}
}
goto L29;
}
goto L27;
}
}
L29:
_t112 = _t56;
goto L30;
}
if(_t82 > _t128) {
goto L6;
}
goto L9;
}
L30:
__esp = &_v16;
_pop(__ebx);
_pop(__esi);
return _t112;
goto L33;
}

getDecryptedKey(unsigned char * , int )(
intOrPtr __eax, // r0
_unknown_ __edx // r3
)
{// addr = 0x080612C4
char _v29; // _cfa_ffffffe3
char _v30; // _cfa_ffffffe2
char _v31; // _cfa_ffffffe1
char _v32; // _cfa_ffffffe0
char _v33; // _cfa_ffffffdf
char _v34; // _cfa_ffffffde
char _v35; // _cfa_ffffffdd
char _v36; // _cfa_ffffffdc
char _v37; // _cfa_ffffffdb
char _v38; // _cfa_ffffffda
char _v39; // _cfa_ffffffd9
char _v40; // _cfa_ffffffd8
char _v41; // _cfa_ffffffd7
char _v42; // _cfa_ffffffd6
char _v43; // _cfa_ffffffd5
char _v44; // _cfa_ffffffd4
intOrPtr _v48; // _cfa_ffffffd0
signed int _v64; // _cfa_ffffffc0
signed int _v80; // _cfa_ffffffb0
signed int __ebx; // r1
signed int __edi; // r4
_unknown_ __esi; // r5
signed int __ebp; // r6
signed int _t35; // _t35
signed char _t37; // _t37
signed int _t43; // _t43

_v48 = __eax;
_v44 = 134;
_v43 = 33;
_v42 = 216;
_v41 = 16;
_v40 = 193;
_v39 = 31;
_v38 = 129;
_v37 = 96;
_v36 = 169;
_v35 = 104;
_v34 = 103;
_v33 = 21;
_v32 = 112;
_v31 = 110;
_v30 = 238;
_v29 = 184;
if(__edx <= 450 || __edx < 451) {
return -1;
} else {
__edi = 0;
do {
__esi = 0;
if(__edi >= 451) {
goto L7;
}
__ebx = __edi;
while(1) {
_t35 = __ebx;
asm("cdq ");
_t43 = _t35 % 226;
_v64 = _t43;
_v80 = _t35 / 226;
_t37 = *((intOrPtr*)(__ebp + __esi - 40));
__esi = __esi + 1;
*(_v48 + __ebx) = _t37 ^ *(_v80 + _t43 * 2 + &s_achKey);
if(__esi >= 16) {
goto L7;
}
__ebx = __edi + __esi;
if(__ebx < 451) {
continue;
}
goto L7;
}
L7:
__edi = __edi + 16;
} while(__edi < 451);
return 451;
}
}

buildLicenseRequest(char * , char * , int )(
_unknown_ __ebx, // r1
intOrPtr __ecx, // r2
intOrPtr __edx, // r3
_unknown_ __esi, // r5
_unknown_ __eflags // r9
)
{// addr = 0x08061384
_unknown_ _v16; // _cfa_fffffff0
char _v852; // _cfa_fffffcac
char _v1052; // _cfa_fffffbe4
char _v1308; // _cfa_fffffae4
char _v1564; // _cfa_fffff9e4
char _v1704; // _cfa_fffff958
char _v1834; // _cfa_fffff8d6
char _v1964; // _cfa_fffff854
char _v4012; // _cfa_fffff054
intOrPtr _v4016; // _cfa_fffff050
intOrPtr _v4020; // _cfa_fffff04c
intOrPtr _v4024; // _cfa_fffff048
_unknown_ __edi; // r4
signed int __ebp; // r6
_unknown_ _t18; // _t18
intOrPtr _t22; // _t22
char* _t23; // _t23
char* _t27; // _t27
_unknown_ _t30; // _t30
_unknown_ _t34; // _t34
intOrPtr _t35; // _t35
char* _t36; // _t36
char* _t41; // _t41
char* _t44; // _t44
char* _t45; // _t45
_unknown_ _t47; // _t47
intOrPtr _t49; // _t49
_unknown_ _t51; // _t51

_v4020 = __edx;
_v4024 = __ecx;
_t41 = &_v1308;
_t47 = getSerialNum(char * , char * , int )(256, _t41, __eflags);
_t51 = _t47 - 255;
_t18 = -1;
if(_t51 != 0) {
__esp = __esp - 8;
_push(0);
_push(2);
_t34 = 256->get_ifi_info(int , int )(_t41, _t51);
_t44 = &_v1564;
_t22 = getMAC(ifi_infochar * * , int , int * )(_t34, 256, _t44, _t51, &_v4016);
__esp = __esp + 16;
if(_t22 <= 0) {
L14:
_t23 = "Network configuration is invalid, at least one working network interface is required.\n";
goto L12;
} else {
if(_t34 != 0) {
__esp = __esp - 12;
_t22 = _t34->free_ifi_info(ifi_info)();
__esp = __esp + 12;
}
if(_t47 == 1) {
_t22 = _v4016;
__eflags = _t22;
if(_t22 != 0) {
goto L5;
} else {
_t23 = "VPS serial number can only be used on a VPS machine.\n";
L12:
perr(char * )(_t23);
_t18 = -2;
}
} else {
L5:
_push(_t22);
_push(390);
_push(0);
_t35 = &_v1964;
_push(_t35);
memset();
*__esp = _t35;
uname();
*__esp = &_v1704;
_push( &_v1834);
_push(_t35);
_push(_t44);
_push( &M081C96DE);
_t27 = &_v1308;
_push(_t27);
_push("Serial: %s\nRelease: %s\nMAC: %s\nOS: %s %s\nMachine: %s\n");
_push(1024);
_t45 = &_v1052;
_push(_t45);
snprintf();
__esp = __esp + 48;
_t36 = _t27;
if(_t27 > 200) {
_t36 = 200;
_v852 = 0;
}
_t49 = &_v4012;
SSLContext::initSSL(void )();
_t30 = getDecryptedKey(unsigned char * , int )(_t49, 2048);
if(_t30 == 255) {
L13:
perr(char * )("Failed to encrpyt request!");
__esp = __esp - 12;
_push(1);
exit();
goto L14;
} else {
__esp = __esp - 8;
_push(_v4024);
_push(_v4020);
_push(_t36);
_push(_t45);
_push(_t30);
_push(_t49);
_t18 = 2048->publickey_encrypt, unsigned char * , int , char * , int , char * , int ?...?(_t49);
__esp = __esp + 32;
if(_t18 == 255) {
goto L13;
}
}
}
}
}
return _t18;
}

License::generateLicenseRequest(char * )(
char* __ebx, // r1
_unknown_ __ecx, // r2
_unknown_ __edx, // r3
_unknown_ __esi, // r5
_unknown_ __eflags, // r9
intOrPtr _a4 // _cfa_4
)
{// addr = 0x080614F4
intOrPtr _v0; // _cfa_0
char _v20; // _cfa_ffffffec
char _v1052; // _cfa_fffffbe4
char _v1564; // _cfa_fffff9e4
char _v2080; // _cfa_fffff7e0
char _v3672; // _cfa_fffff1a8
_unknown_ __edi; // r4
signed int __ebp; // r6
_unknown_ _t12; // _t12
char* _t13; // _t13
char* _t14; // _t14
_unknown_ _t17; // _t17
_unknown_ _t20; // _t20
_unknown_ _t21; // _t21
char* _t22; // _t22
char* _t23; // _t23
char* _t28; // _t28
_unknown_ _t30; // _t30
intOrPtr _t31; // _t31
char* _t32; // _t32
_unknown_ _t34; // _t34
char* _t35; // _t35
_unknown_ _t36; // _t36
_unknown_ _t39; // _t39

_t23 = __ebx;
__esp = __esp - 1548;
_t31 = _a4;
_t28 = &_v1052;
_t12 = buildLicenseRequest(char * , char * , int )(__ebx, 1024, _t28, __esi, __eflags);
_t39 = _t12;
_t34 = _t12;
if(_t39 < 0) {
__esp = __esp - 12;
_push(1);
goto L5;
} else {
_push("lic_req.bin");
_push(_t31);
_push(512);
_push( &_v1564);
_t20 = 1024->getAbsoluteFile(char * , unsigned int , char * , 2)(_t28, _t39);
__esp = __esp + 16;
_t21 = _t20 + 1;
if(_t21 == 0) {
L3:
_push(_t34);
_push(_t31);
_push("[ERROR] Failed to create license key request file - lic_req.bin under %s!\n");
_push(__imp__stderr);
fprintf();
_pop(__ebx);
L4:
_push(1);
L5:
exit();
} else {
_push(_t21);
_push(438);
_push(65);
_t22 = &_v1564;
_push(_t22);
open64();
__esp = __esp + 16;
_t23 = _t22;
if(_t22 == 255) {
goto L3;
}
}
}
_push(1024);
_push(_t34);
_t13 = &_v1052;
_push(_t13);
_push(_t23);
write();
__esp = __esp + 16;
if(_t13 != _t34) {
__esp = __esp - 12;
_push("write()");
perror();
_pop(__ebx);
goto L4;
}
__esp = __esp - 12;
_push(_t23);
close();
_pop(__eax);
_pop(__edx);
_t14 = &_v1564;
_push(_t14);
_push("[OK] You license key request has been created at %s.\n");
printf();
*__esp = 0;
exit();
_push(_t36);
_push(_t31);
_push(_t34);
_push(_t23);
__esp = __esp - 2060;
_t32 = _t14;
_t35 = _t28;
_t30 = getDecryptedKey(unsigned char * , int )( &_v3672, 2048);
__eflags = _t30 - 255;
_t17 = -1;
if(_t30 != 255) {
__esp = __esp - 8;
_push(_v0);
_push(1024);
_push(_t35);
_push(_t32);
_push(_t30);
_push( &_v2080);
_t17 = _t30->publickey_decrypt(unsigned char * , int , char * , int , char * , int )(_t35);
__esp = __esp + 32;
}
__esp = &_v20;
return _t17;
}

decrypt_license_key(char * , int , char * , int )(
_unknown_ __ecx, // r2
_unknown_ __edx, // r3
_unknown_ __esi, // r5
intOrPtr _a4 // _cfa_4
)
{// addr = 0x080615C8
_unknown_ _v16; // _cfa_fffffff0
char _v2076; // _cfa_fffff7e4
_unknown_ __ebx; // r1
_unknown_ __edi; // r4
signed int __ebp; // r6
_unknown_ _t5; // _t5
_unknown_ _t8; // _t8
_unknown_ _t12; // _t12

__ecx = __ecx;
__edi = _t5;
__ebx = __ecx;
_t12 = getDecryptedKey(unsigned char * , int )( &_v2076, 2048);
_t8 = -1;
if(_t12 != 255) {
__esp = __esp - 8;
_push(_a4);
_push(__ebx);
_push(__edx);
_push(__edi);
_push(_t12);
_push( &_v2076);
_t8 = _t12->publickey_decrypt(unsigned char * , int , char * , int , char * , int )(__edx);
__esp = __esp + 32;
}
return _t8;
}

build_format_string(int , char * )(
_unknown_ __eax, // r0
char* __edx // r3
)
{// addr = 0x08061618
signed int __ebp; // r6
char* _t2; // _t2
char* _t3; // _t3
_unknown_ _t5; // _t5

__ecx = __eax;
__ebp = __esp;
_t2 = __edx;
_t5 = 0;
while(_t5 < __ecx) {
*_t2 = 37;
_t3 = _t2 + 1;
*_t3 = 99;
_t5 = _t5 + 1;
_t2 = _t3 + 1;
}
__esp = __ebp;
return _t2;
}

License::checkLicenseKey(char * , long & , 2, char * , int , ifi_info)(
_unknown_ __ebx, // r1
_unknown_ __ecx, // r2
_unknown_ __edx, // r3
_unknown_ __eflags, // r9
_unknown_ _a4, // _cfa_4
signed int _a8, // _cfa_8
signed int _a12, // _cfa_c
signed int _a16, // _cfa_10
intOrPtr _a20, // _cfa_14
signed int _a24 // _cfa_18
)
{// addr = 0x08061634
char _v16; // _cfa_fffffff0
char _v284; // _cfa_fffffee4
char _v540; // _cfa_fffffde4
char _v604; // _cfa_fffffda4
char _v860; // _cfa_fffffca4
signed int _v864; // _cfa_fffffca0
signed int _v868; // _cfa_fffffc9c
signed int* _v872; // _cfa_fffffc98
signed int _v876; // _cfa_fffffc94
signed int _v880; // _cfa_fffffc90
signed int _v884; // _cfa_fffffc8c
signed int _v888; // _cfa_fffffc88
signed int _v892; // _cfa_fffffc84
signed int _v896; // _cfa_fffffc80
signed int _v900; // _cfa_fffffc7c
signed int _v904; // _cfa_fffffc78
signed int _v908; // _cfa_fffffc74
signed int _v912; // _cfa_fffffc70
signed int _v916; // _cfa_fffffc6c
signed int _v917; // _cfa_fffffc6b
_unknown_ __edi; // r4
_unknown_ __esi; // r5
signed int __ebp; // r6
signed int _t117; // _t117
_unknown_ _t118; // _t118
signed int _t120; // _t120
signed int _t123; // _t123
signed int _t127; // _t127
signed int _t130; // _t130
char* _t134; // _t134
char* _t138; // _t138
_unknown_ _t141; // _t141
char* _t143; // _t143
char* _t147; // _t147
char* _t151; // _t151
char* _t153; // _t153
char* _t155; // _t155
signed int _t162; // _t162
signed int _t163; // _t163
signed int _t168; // _t168
signed int _t169; // _t169
signed int _t172; // _t172
signed int _t174; // _t174
signed int _t176; // _t176
signed int _t178; // _t178
signed int _t182; // _t182
char* _t185; // _t185
char* _t186; // _t186
char* _t187; // _t187
signed int _t188; // _t188
char* _t189; // _t189
signed int _t193; // _t193
signed int _t194; // _t194
signed int _t195; // _t195
signed int _t197; // _t197
signed int _t215; // _t215
signed int _t217; // _t217
signed int _t219; // _t219
signed int _t221; // _t221
signed int _t222; // _t222
char* _t223; // _t223

__esp = __esp - 920;
_t219 = _a16;
_t193 = _a20 + _t219;
_t117 = _a8;
_v864 = 1;
_v876 = 0;
_v880 = _t193;
_v884 = 0;
_v888 = 0;
_v892 = 0;
_v896 = 0;
_v900 = 1;
_v904 = 0;
_v868 = _t117;
_push(0);
_v872 = _a12;
time();
__esp = __esp + 16;
_v908 = _t117;
*_v872 = 1158167400;
if(_t219 == _v880) {
L66:
_push(_t117);
_push(_v900);
_push("[WARNING] Server signature does not match the license key #%d.\n Please request a new license key! \n");
goto L67;
} else {
do {
_t120 = _v880 - _t219;
_push(_t193);
_push(_t120);
_push(10);
_push(_t219);
memchr();
__esp = __esp + 16;
_v912 = _t120;
if(_t120 == 0) {
_v912 = _v880;
}
_t201 = _v912;
*_t201 = 0;
_t123 = _t201 - _t219;
_push(_t201);
_push(_t123);
_push(58);
_push(_t219);
memchr();
__esp = __esp + 16;
_t181 = _t123;
if(_t123 == 0) {
goto L9;
} else {
*_t123 = 0;
_t181 = _t181 + 1;
_t193 = *_t181;
_v917 = _t193;
if(_t193 == 32) {
do {
_t181 = _t181 + 1;
_t123 = *_t181;
_v917 = _t123;
} while(_t123 == 32);
}
__esp = __esp - 8;
_push( &M081C0791);
_push(_t219);
strcasecmp();
__esp = __esp + 16;
if(_t123 == 0) {
_push(0);
_push(10);
_push(0);
_push(_t181);
__strtol_internal();
__esp = __esp + 16;
__eflags = _t123;
if(_t123 <= 0) {
_t201 = _v868;
*_v868 = 0;
} else {
_t193 = _v868;
*_t193 = _t123;
}
_t181 = _v868;
HttpGlobals::s_expire = *_v868;
goto L9;
} else {
__esp = __esp - 8;
_push("Serial");
_push(_t219);
strcasecmp();
__esp = __esp + 16;
if(_t123 != 0) {
__esp = __esp - 8;
_push(136353553);
_push(_t219);
strcasecmp();
__esp = __esp + 16;
__eflags = _t123;
if(__eflags == 0) {
__esp = __esp - 12;
_push( &_v864);
_t219 = &_v540;
_t193 = 256;
_t201 = _t219;
_t168 = getMAC(ifi_infochar * * , int , int * )(_t181, 256, _t219, __eflags);
__esp = __esp + 16;
__eflags = _t168;
if(_t168 <= 0) {
break;
} else {
_t169 = _t219 + _t168;
__eflags = _t219 - _t169;
_t217 = _t219;
_v916 = _t169;
_v896 = 0;
if(_t219 < _t169) {
__esp = __esp - 8;
_push(44);
_push(_t217);
strchr();
__esp = __esp + 16;
__eflags = _t169;
_t222 = _t169;
if(_t169 == 0) {
L51:
_t222 = _v916;
} else {
L47:
*_t169 = 0;
}
L48:
__esp = __esp - 8;
_push(_t217);
_push(_t181);
strstr();
__esp = __esp + 16;
__eflags = _t169;
if(_t169 == 0) {
_v896 = 0;
} else {
_t217 = _t222 + 1;
_v896 = 1;
__eflags = _t217 - _v916;
if(_t217 < _v916) {
__esp = __esp - 8;
_push(44);
_push(_t217);
strchr();
__esp = __esp + 16;
__eflags = _t169;
_t222 = _t169;
if(_t169 != 0) {
goto L47;
} else {
goto L51;
}
goto L48;
}
}
}
goto L9;
}
} else {
__esp = __esp - 8;
_push(136101539);
_push(_t219);
strcasecmp();
__esp = __esp + 16;
__eflags = _t123;
if(__eflags == 0) {
__esp = __esp - 12;
_t223 = &_v604;
_push(_t223);
_t181->AccessControl(void )();
__esp = __esp + 12;
_push(0);
_push(136116393);
_push(_t223);
_t181->addSubNetControl(char * , int )(_t193, _t201, __eflags);
__esp = __esp + 12;
_push(1);
_push(_t181);
_push(_t223);
_t172 = _t181->addList(char * , int )(_t193, __eflags);
__esp = __esp + 16;
__eflags = _t172;
if(__eflags > 0) {
_t181 = _a24;
while(1) {
__eflags = _t181;
if(__eflags == 0) {
break;
}
__esp = __esp - 8;
_push( *((intOrPtr*)(_t181 + 32)));
_push(_t223);
_t172->hasAccess(sockaddr)();
__esp = __esp + 16;
__eflags = _t172;
if(__eflags != 0) {
_t174 = 1;
} else {
_t181 = *(_t181 + 44);
continue;
}
L80:
_v896 = _t174;
goto L81;
}
_t174 = 0;
goto L80;
}
L81:
__esp = __esp - 12;
_push(_t223);
_t181->~AccessControl(void )(_t193, _t201, __eflags);
__esp = __esp + 16;
} else {
__esp = __esp - 8;
_push(136312636);
_push(_t219);
strcasecmp();
__esp = __esp + 16;
__eflags = _t123;
if(_t123 == 0) {
_push(0);
_push(10);
_push(0);
_push(_t181);
__strtol_internal();
__esp = __esp + 16;
_v900 = _t123;
} else {
__esp = __esp - 8;
_push("UPG");
_push(_t219);
strcasecmp();
__esp = __esp + 16;
__eflags = _t123;
if(_t123 == 0) {
_push(0);
_push(10);
_push(0);
_push(_t181);
__strtol_internal();
__esp = __esp + 16;
__eflags = _t123;
if(_t123 != 0) {
_t201 = _v872;
*_v872 = _t123;
}
} else {
__esp = __esp - 8;
_push("PROC");
_push(_t219);
strcasecmp();
__esp = __esp + 16;
__eflags = _t123;
if(_t123 == 0) {
__eflags = _v917 - 86;
if(_v917 == 86) {
L77:
_t181 = _t181 + 1;
_v876 = 1;
} else {
__eflags = _v917 - 118;
if(_v917 == 118) {
goto L77;
}
}
_push(0);
_push(10);
_push(0);
_push(_t181);
__strtol_internal();
__esp = __esp + 16;
__eflags = _t123;
_v904 = _t123;
if(_t123 == 0) {
_v904 = 1;
}
}
}
}
}
goto L9;
}
} else {
__esp = __esp - 8;
_push("TRIAL");
_push(_t181);
strcasecmp();
__esp = __esp + 16;
if(_t123 != 0) {
__esp = __esp - 8;
_push("PERM");
_push(_t181);
strcasecmp();
__esp = __esp + 16;
__eflags = _t123;
_v884 = 1;
if(__eflags == 0) {
goto L9;
} else {
_t201 = ?_? ( &_v284);
_t176 = getSerialNum(char * , char * , int )(256, &_v284, __eflags);
_v888 = _t176;
__eflags = _t176 + 1;
if(__eflags == 0) {
L68:
_t118 = -1;
L69:
__esp = &_v16;
return _t118;
} else {
_t193 = 20;
asm("cld ");
asm("rep cmpsb ");
if(__eflags == 0) {
goto L68;
} else {
__esp = __esp - 8;
_t178 = &_v284;
_push(_t178);
_push(_t181);
strcmp();
__esp = __esp + 16;
__eflags = _t178;
if(_t178 != 0) {
__esp = __esp - 8;
_push("[ERROR] Serial number does not match!\n");
L67:
_push(__imp__stderr);
fprintf();
goto L68;
} else {
_v884 = 1;
goto L9;
}
}
}
}
} else {
_v892 = 1;
goto L9;
}
}
}
}
goto L88;
L9:
_t219 = _v912 + 1;
} while(_t219 != _v880);
if(_v892 != 0) {
L13:
if(_v876 != 0 || _v888 == 1) {
__eflags = _v864;
if(__eflags == 0) {
_t127 = detectVPS(void )(_t181, _t193, _t201, __eflags);
__eflags = _t127;
_v864 = _t127;
if(_t127 != 0) {
goto L60;
} else {
__esp = __esp - 8;
_push("[ERROR] VPS license cannot be used on non-VPS server. \n Please upgrade your license! \n");
goto L67;
}
} else {
L60:
_t182 = _v868;
asm("cdq ");
_t194 = *_t182;
__eflags = _t194;
HttpGlobals::s_maxServerConns = 500 / _v904;
if(_t194 != 0) {
goto L16;
} else {
goto L61;
}
}
} else {
_t182 = _v868;
_t194 = *_t182;
if(_t194 == 0) {
L61:
_t197 = *_v872;
_t162 = _t197 - _v908;
asm("cdq ");
_t163 = _t162 / 86400;
_t215 = _t162 % 86400;
__eflags = _t197 - 1239431912;
if(_t197 <= 1239431912) {
__esp = __esp - 12;
_push("[ERROR] You are not authorized to use this binary, please purchase upgrades.");
puts();
_t118 = -1;
goto L69;
} else {
__eflags = _t197 - _v908;
if(_t197 >= _v908) {
_push(_t215);
_push(_t163);
_push(_v900);
_push("[OK] License key #%d verification passed! Software upgrade expires in %d days.\n");
printf();
} else {
__esp = __esp - 8;
_push(_v900);
_push("[OK] License key #%d verification passed! Software upgrade has expired.\n");
printf();
}
goto L22;
}
} else {
L16:
_t130 = _v872;
if(_t194 > *_t130) {
*_t130 = _t194;
_t194 = *_t182;
}
if(_t194 < _v908) {
_t195 = _t194 - _v908;
asm("cdq ");
__eflags = _v892;
_t221 = _t195 / 86400;
if(_v892 != 0) {
_t185 = &_v860;
_t134 = build_format_string(int , char * )(43, _t185);
*_t134 = 37;
*((char*)(_t134 + 1)) = 100;
_t138 = build_format_string(int , char * )(6, _t134 + 2);
*_t138 = 10;
*((char*)(_t138 + 1)) = 0;
_push(_t195);
_push(33);
_push(115);
_push(121);
_push(97);
_push(100);
_push(32);
_push(_t221);
_push(32);
_push(110);
_push(105);
_push(32);
_push(101);
_push(114);
_push(105);
_push(112);
_push(120);
_push(101);
_push(32);
_push(108);
_push(108);
_push(105);
_push(119);
_push(32);
_push(121);
_push(101);
_push(107);
_push(32);
_push(101);
_push(115);
_push(110);
_push(101);
_push(99);
_push(105);
_push(108);
_push(32);
_push(108);
_push(97);
_push(105);
_push(114);
_push(116);
_push(32);
_push(114);
_push(117);
_push(111);
_push(89);
_push(32);
_push(93);
_push(75);
_push(79);
_push(91);
_push(_t185);
printf();
__esp = __esp + 208;
} else {
_t186 = &_v860;
_t143 = build_format_string(int , char * )(23, _t186);
*_t143 = 37;
*((char*)(_t143 + 1)) = 100;
_t147 = build_format_string(int , char * )(16, _t143 + 2);
*_t147 = 37;
*((char*)(_t147 + 1)) = 100;
_t151 = build_format_string(int , char * )(6, _t147 + 2);
*_t151 = 10;
*((char*)(_t151 + 1)) = 0;
_push(33);
_push(115);
_push(121);
_push(97);
_push(100);
_push(32);
_push(_t221);
_push(32);
_push(110);
_push(105);
_push(32);
_push(101);
_push(114);
_push(105);
_push(112);
_push(120);
_push(101);
_push(32);
_push(108);
_push(108);
_push(105);
_push(119);
_push(32);
_push(_v900);
_push(32);
_push(121);
_push(101);
_push(107);
_push(32);
_push(101);
_push(115);
_push(110);
_push(101);
_push(99);
_push(105);
_push(108);
_push(32);
_push(101);
_push(115);
_push(97);
_push(101);
_push(76);
_push(32);
_push(93);
_push(75);
_push(79);
_push(91);
_push(_t186);
printf();
__esp = __esp + 192;
}
goto L23;
} else {
if(_v892 != 0) {
_t187 = &_v860;
_t153 = build_format_string(int , char * )(42, _t187);
*_t153 = 10;
*((char*)(_t153 + 1)) = 0;
_push(33);
_push(100);
_push(101);
_push(114);
_push(105);
_push(112);
_push(120);
_push(101);
_push(32);
_push(115);
_push(97);
_push(104);
_push(32);
_push(121);
_push(101);
_push(107);
_push(32);
_push(101);
_push(115);
_push(110);
_push(101);
_push(99);
_push(105);
_push(108);
_push(32);
_push(108);
_push(97);
_push(105);
_push(114);
_push(116);
_push(32);
_push(114);
_push(117);
_push(111);
_push(121);
_push(32);
_push(44);
_push(121);
_push(114);
_push(114);
_push(111);
_push(83);
_push(_t187);
_push(__imp__stderr);
fprintf();
_t118 = -1;
goto L69;
} else {
_t188 = _t194 + 86400;
if(_v908 > _t188) {
_t189 = &_v860;
_t155 = build_format_string(int , char * )(36, _t189);
__esp = __esp - 8;
*_t155 = 10;
*((char*)(_t155 + 1)) = 0;
_push(33);
_push(100);
_push(101);
_push(114);
_push(105);
_push(112);
_push(120);
_push(101);
_push(32);
_push(115);
_push(97);
_push(104);
_push(32);
_push(121);
_push(101);
_push(107);
_push(32);
_push(101);
_push(115);
_push(110);
_push(101);
_push(99);
_push(105);
_push(108);
_push(32);
_push(114);
_push(117);
_push(111);
_push(121);
_push(32);
_push(44);
_push(121);
_push(114);
_push(114);
_push(111);
_push(83);
_push(_t189);
_push(__imp__stderr);
fprintf();
_t141 = -2;
} else {
_push(_t219);
asm("cdq ");
_push((_t188 - _v908) / 86400);
_push("[WARNING] Your license key has expired, please renew you license key in %ld days!\n");
_push(__imp__stderr);
fprintf();
*_v868 = _t188;
L22:
__esp = __esp + 16;
L23:
if(_v904 <= 0) {
_v904 = 2;
}
HttpGlobals::s_children = 8;
_t141 = 0;
}
__esp = &_v16;
return _t141;
}
}
}
}
} else {
_t117 = _v896;
if(_t117 == 0) {
goto L66;
} else {
if(_v884 == 0) {
__esp = __esp - 8;
_push("[WARNING] Serial number is invalid. \n Please request a new license key! \n");
goto L67;
} else {
goto L13;
}
}
}
}
L88:
}

License::verifyLicenseKey(char * , long & , 2, int , char * , int * )(
_unknown_ __ebx, // r1
_unknown_ __ecx, // r2
_unknown_ __edx, // r3
_unknown_ __esi, // r5
_unknown_ __eflags, // r9
intOrPtr _a4, // _cfa_4
intOrPtr _a8, // _cfa_8
intOrPtr _a12, // _cfa_c
intOrPtr _a16, // _cfa_10
intOrPtr _a20, // _cfa_14
intOrPtr _a24 // _cfa_18
)
{// addr = 0x08061F3C
char _v16; // _cfa_fffffff0
char _v540; // _cfa_fffffde4
char _v1564; // _cfa_fffff9e4
char _v2588; // _cfa_fffff5e4
char* __edi; // r4
signed int __ebp; // r6
_unknown_ _t20; // _t20
_unknown_ _t21; // _t21
_unknown_ _t22; // _t22
intOrPtr _t23; // _t23
_unknown_ _t24; // _t24
intOrPtr _t25; // _t25
_unknown_ _t27; // _t27
intOrPtr _t28; // _t28
_unknown_ _t29; // _t29
intOrPtr _t30; // _t30
_unknown_ _t32; // _t32
_unknown_ _t33; // _t33
_unknown_ _t35; // _t35
char* _t40; // _t40
intOrPtr _t41; // _t41
_unknown_ _t42; // _t42
_unknown_ _t43; // _t43
_unknown_ _t44; // _t44
char* _t45; // _t45
_unknown_ _t46; // _t46
intOrPtr _t47; // _t47
intOrPtr _t49; // _t49
_unknown_ _t50; // _t50
_unknown_ _t52; // _t52
_unknown_ _t57; // _t57

_t46 = __edx;
_t44 = __ecx;
__esp = __esp - 2584;
_push(0);
time();
__esp = __esp + 16;
_t52 = _t20 - 1239345512;
if(_t52 <= 0) {
__esp = __esp - 8;
_push("[ERROR] Clock on your server is not accurate, fix it first.\n");
goto L20;
} else {
_push("conf/license.key");
_push(_a4);
_push(512);
_t40 = &_v540;
_push(_t40);
_t22 = __ecx->getAbsoluteFile(char * , unsigned int , char * , 2)(__edx, _t52);
__esp = __esp + 16;
_t23 = _t22 + 1;
if(_t23 == 0) {
L10:
_push( &M081C2B5E);
_push(_a4);
_push(512);
_push(_t40);
_t24 = _t44->getAbsoluteFile(char * , unsigned int , char * , 2)(_t46, __eflags);
__esp = __esp + 16;
_t25 = _t24 + 1;
__eflags = _t25;
if(_t25 == 0) {
L13:
__eflags = _a16;
if(__eflags != 0) {
L19:
_push(_a4);
_push(_a4);
_push("[ERROR] Failed to find your license key under - %s or %sconf/!\n");
goto L20;
} else {
_push("conf/trial.key");
_push(_a4);
_push(512);
_push(_t40);
_t27 = _t44->getAbsoluteFile(char * , unsigned int , char * , 2)(_t46, __eflags);
__esp = __esp + 16;
_t28 = _t27 + 1;
__eflags = _t28;
if(__eflags == 0) {
L16:
_push( &M081C2B6F);
_push(_a4);
_push(512);
_push(_t40);
_t29 = _t44->getAbsoluteFile(char * , unsigned int , char * , 2)(_t46, __eflags);
__esp = __esp + 16;
_t28 = _t29 + 1;
__eflags = _t28;
if(_t28 == 0) {
goto L19;
} else {
__esp = __esp - 8;
_push(0);
_push(_t40);
open64();
__esp = __esp + 16;
__eflags = _t28 - 255;
_t49 = _t28;
if(_t28 != 255) {
goto L3;
} else {
goto L19;
}
}
} else {
__esp = __esp - 8;
_push(0);
_push(_t40);
open64();
__esp = __esp + 16;
__eflags = _t28 - 255;
_t49 = _t28;
if(__eflags != 0) {
goto L3;
} else {
goto L16;
}
}
}
} else {
__esp = __esp - 8;
_push(0);
_push(_t40);
open64();
__esp = __esp + 16;
__eflags = _t25 - 255;
_t49 = _t25;
if(_t25 != 255) {
goto L3;
} else {
goto L13;
}
}
} else {
__esp = __esp - 8;
_push(0);
_push(_t40);
open64();
__esp = __esp + 16;
_t49 = _t23;
if(_t23 == 255) {
goto L10;
} else {
L3:
_push(_t28);
_push(1024);
__edi = &_v1564;
_push(__edi);
_push(_t49);
read();
__esp = __esp + 16;
_t41 = _t28;
if(_t28 <= 0) {
__esp = __esp - 12;
_push("read()");
perror();
_t21 = -1;
goto L21;
} else {
__esp = __esp - 12;
_push(_t49);
close();
_t30 = _a20;
__esp = __esp + 16;
if(_t30 != 0) {
_push(_t30);
_push(_t41);
_push(__edi);
_push(_a20);
memmove();
*_a24 = _t41;
__esp = __esp + 16;
}
__esp = __esp - 12;
_push(1024);
_t47 = _t41;
_t45 = &_v2588;
_t32 = decrypt_license_key(char * , int , char * , int )(_t45, _t47, _t49);
__esp = __esp + 16;
_t57 = _t32 - 255;
_t42 = _t32;
if(_t57 == 0) {
__esp = __esp - 8;
_push("[ERROR] Failed to decrypt your license key.\n");
L20:
_push(__imp__stderr);
fprintf();
_t21 = -1;
L21:
__esp = &_v16;
return _t21;
} else {
__esp = __esp - 8;
_push(0);
_push(2);
_t33 = _t45->get_ifi_info(int , int )(_t47, _t57);
_pop(__edi);
_t50 = _t33;
_pop(__eax);
_push(_t50);
_push(_t42);
_push( &_v2588);
_push(_a12);
_push(_a8);
_push(_a4);
_t35 = _t42->checkLicenseKey(char * , long & , 2, char * , int , ifi_info)(_t45, _t47, _t57);
__esp = __esp + 32;
_t43 = _t35;
if(_t50 != 0) {
__esp = __esp - 12;
_t50->free_ifi_info(ifi_info)();
__esp = __esp + 12;
}
__esp = &_v16;
return _t43;
}
}
}
}
}
}

registerCallback(void * , HttpFetch)()
{// addr = 0x08062138
signed int __ebp; // r6

return 0;
}

startRegister(char * , 0, int )(
_unknown_ __ebx, // r1
intOrPtr __ecx, // r2
intOrPtr __edx, // r3
_unknown_ __edi, // r4
_unknown_ __eflags // r9
)
{// addr = 0x08062140
char _v16; // _cfa_fffffff0
char _v1007; // _cfa_fffffc11
char _v1052; // _cfa_fffffbe4
intOrPtr _v1056; // _cfa_fffffbe0
intOrPtr _v1060; // _cfa_fffffbdc
char* __esi; // r5
signed int __ebp; // r6
_unknown_ _t10; // _t10
_unknown_ _t14; // _t14
_unknown_ _t16; // _t16
_unknown_ _t19; // _t19
_unknown_ _t28; // _t28

__edx = __edx;
__esp = __esp - 1056;
asm("cld ");
_v1060 = __ecx;
__esi = "http://license.litespeedtech.com/lic_reg.php";
_v1056 = __edx;
_push(11 << 2);
_push(__esi);
_push( &_v1052);
memcpy();
__esp = __esp + 12;
asm("movsb ");
_push(979);
_push(0);
_t19 = _t10;
_push( &_v1007);
memset();
*__esp = &s_fetch;
_t19->reset(void )(__eflags);
__esp = __esp + 12;
_push(_t19);
_push(0);
_push(_v1060);
_push(_v1056);
_push(0);
_push( &_v1052);
_push( &s_fetch);
*136614424 = registerCallback(void * , HttpFetch);
*136614428 = 0;
_t14 = _t19->startReq, char * , int , 1, int , 1, 1?...?(0, __edx, __esi + 0x16, __eflags);
__esp = __esp + 32;
_t28 = _t14;
if(_t28 != 0) {
__esp = __esp - 12;
_push("Failed to send registration request.\n");
_t14->error(char * , ... )();
_t16 = -1;
} else {
__esp = __esp - 12;
_push( &s_fetch);
_t19->process(void )(__edx, _t28);
_t16 = 0;
}
__esp = &_v16;
return _t16;
}

checkResult(char * , int )(
char* __ebx, // r1
_unknown_ __ecx, // r2
intOrPtr __edx, // r3
_unknown_ __esi, // r5
_unknown_ __eflags // r9
)
{// addr = 0x080621F8
char _v16; // _cfa_fffffff0
char _v540; // _cfa_fffffde4
char _v1052; // _cfa_fffffbe4
char _v2076; // _cfa_fffff7e4
intOrPtr _v2080; // _cfa_fffff7e0
intOrPtr _v2084; // _cfa_fffff7dc
intOrPtr _v2088; // _cfa_fffff7d8
intOrPtr __edi; // r4
signed int __ebp; // r6
intOrPtr _t33; // _t33
intOrPtr _t37; // _t37
_unknown_ _t38; // _t38
_unknown_ _t40; // _t40
_unknown_ _t44; // _t44
intOrPtr _t45; // _t45
_unknown_ _t47; // _t47
intOrPtr _t48; // _t48
_unknown_ _t51; // _t51
intOrPtr _t52; // _t52
char* _t54; // _t54
_unknown_ _t56; // _t56
intOrPtr _t57; // _t57
_unknown_ _t59; // _t59
_unknown_ _t61; // _t61
intOrPtr _t62; // _t62
_unknown_ _t65; // _t65
char* _t66; // _t66
_unknown_ _t68; // _t68
_unknown_ _t73; // _t73

_t65 = __ecx;
__ebx = __ebx;
_push(__esi);
_push(__ebx);
__esp = __esp - 2076;
_t73 = *136614376 - 200;
_v2084 = _t33;
_t71 = __edx;
if(_t73 != 0) {
L3:
__esp = __esp - 12;
_push("[LICENSE] Failed to communicate with licensing server: license.litespeedtech.com");
_t33->error(char * , ... )();
L4:
_t68 = -1;
L5:
__esp = &_v16;
_pop(__ebx);
_pop(__esi);
return _t68;
}
__esp = __esp - 8;
_push( &_v2080);
_push( *136614372);
__ebx = *136614412;
_t33 = __ebx->getReadBuffer(unsigned int & )(__edx, _t73);
__esp = __esp - 8;
_push("text/plain");
_push(__ebx);
__edi = _t33;
strcasecmp();
__esp = __esp + 32;
if(_t33 != 0) {
__esp = __esp - 8;
_push(__edi);
_push("[LICENSE] License key operation failure: %s");
_t37 = _t33->error(char * , ... )();
__esp = __esp - 8;
_push("EXCEPTION");
_push(__edi);
strstr();
__esp = __esp + 32;
_t68 = 0;
__eflags = _t37;
if(_t37 != 0) {
goto L5;
}
__eflags = __edx - 2;
if(__eflags == 0) {
_push("conf/license.key");
_push(_v2084);
_push(512);
_t71 = &_v540;
_push(_t71);
_t38 = __ecx->getAbsoluteFile(char * , unsigned int , char * , 2)(0, __eflags);
__esp = __esp + 16;
__eflags = _t38 + 1;
if(__eflags != 0) {
_push("conf/license.key.bad");
_push(_v2084);
_push(512);
__ebx = &_v1052;
_push(__ebx);
__ecx->getAbsoluteFile(char * , unsigned int , char * , 2)(0, __eflags);
_pop(__eax);
_pop(__edx);
_push(__ebx);
_push(_t71);
rename();
__esp = __esp + 16;
}
_push("conf/trial.key");
_push(_v2084);
_push(512);
_push(_t71);
_t40 = _t65->getAbsoluteFile(char * , unsigned int , char * , 2)(_t68, __eflags);
__esp = __esp + 16;
__eflags = _t40 + 1;
if(_t40 + 1 == 0) {
goto L8;
} else {
__esp = __esp - 12;
_push(_t71);
unlink();
__esp = __esp + 16;
_t68 = 100;
goto L5;
}
}
L8:
_t68 = 100;
goto L5;
}
__esp = __esp - 8;
_push("application/license-key");
_push(__ebx);
strcasecmp();
__esp = __esp + 16;
if(_t33 == 0) {
__esp = __esp - 12;
__ebx = &_v2076;
_push(1024);
_t66 = __ebx;
_t44 = decrypt_license_key(char * , int , char * , int )(_t66, _v2080, __edx);
__esp = __esp + 16;
_t45 = _t44 + 1;
__eflags = _t45;
if(_t45 == 0) {
__esp = __esp - 12;
_push("[LICENSE] Failed to decrypt license key received!");
_t45->error(char * , ... )();
goto L4;
}
_push(_t45);
_push(2);
_push("OK");
_push(__ebx);
strncasecmp();
__esp = __esp + 16;
_t68 = 0;
__eflags = _t45;
if(_t45 == 0) {
goto L5;
}
_push(_t45);
_push(3);
_push("BAN");
_push(__ebx);
strncasecmp();
__esp = __esp + 16;
__eflags = _t45;
if(__eflags == 0) {
_push("conf/license.key");
_push(_v2084);
_push(512);
__ebx = &_v540;
_push(__ebx);
_t47 = _t66->getAbsoluteFile(char * , unsigned int , char * , 2)(0, __eflags);
__esp = __esp + 16;
_t48 = _t47 + 1;
__eflags = _t48;
if(_t48 != 0) {
__esp = __esp - 12;
_push(__ebx);
unlink();
__esp = __esp + 16;
}
__esp = __esp - 12;
_push("[LICENSE] Your license key has been revoked!");
_t48->error(char * , ... )();
goto L4;
}
_push(_t45);
_push(8);
_push("Serial: ");
_push(__ebx);
strncasecmp();
__esp = __esp + 16;
__eflags = _t45;
if(_t45 != 0) {
__esp = __esp - 12;
_push("[LICENSE] Currupted License key has been received!");
_t45->error(char * , ... )();
goto L4;
}
__eflags = __edx;
if(__eflags == 0) {
_push( &M081C2B5E);
_push(_v2084);
_push(512);
__ebx = &_v540;
_push(__ebx);
_t51 = _t66->getAbsoluteFile(char * , unsigned int , char * , 2)(0, __eflags);
__esp = __esp + 16;
_t52 = _t51 + 1;
__eflags = _t52;
if(_t52 == 0) {
L29:
__esp = __esp - 8;
_push(_v2084);
_push("[LICENSE] Failed to create license key file - license.key under %s!\n");
_t52->error(char * , ... )();
goto L4;
}
_push(__edx);
_push(384);
_push(65);
_push(__ebx);
open64();
_v2088 = _t52;
__esp = __esp + 16;
_t52 = _t52 + 1;
__eflags = _t52;
if(_t52 != 0) {
L16:
_push(_t66);
_push(_v2080);
_push(__edi);
_push(_v2088);
write();
__esp = __esp + 16;
__eflags = _t52 - _v2080;
if(_t52 != _v2080) {
__esp = __esp - 12;
_push("write()");
perror();
goto L4;
}
__esp = __esp - 12;
_push(_v2088);
close();
_pop(__eax);
_pop(__edx);
_t54 = &_v540;
_push(_t54);
_push("[OK] Updated license key has been created at %s.\n");
_t54->notice(char * , ... )();
_t68 = 1;
goto L5;
}
goto L29;
}
__eflags = __edx - 1;
if(__eflags == 0) {
_push("conf/license.key");
_push(_v2084);
_push(512);
__ebx = &_v540;
_push(__ebx);
_t56 = _t66->getAbsoluteFile(char * , unsigned int , char * , 2)(0, __eflags);
__esp = __esp + 16;
_t57 = _t56 + 1;
__eflags = _t57;
if(_t57 == 0) {
L32:
__esp = __esp - 8;
_push(_v2084);
_push("[LICENSE] License key has been migrated, failed to create a temp license key file - license.key under %s/conf!\n");
_t57->error(char * , ... )();
goto L4;
}
_push(_t66);
_push(384);
_push(65);
_push(__ebx);
open64();
_v2088 = _t57;
__esp = __esp + 16;
_t52 = _t57 + 1;
__eflags = _t52;
if(_t52 != 0) {
goto L16;
}
goto L32;
}
__eflags = __edx - 2;
if(__eflags == 0) {
_push("conf/license.key");
_push(_v2084);
_push(512);
_t71 = &_v540;
_push(_t71);
_t59 = _t66->getAbsoluteFile(char * , unsigned int , char * , 2)(0, __eflags);
__esp = __esp + 16;
__eflags = _t59 + 1;
if(__eflags != 0) {
_push("conf/license.key.old");
_push(_v2084);
_push(512);
__ebx = &_v1052;
_push(__ebx);
_t66->getAbsoluteFile(char * , unsigned int , char * , 2)(0, __eflags);
_pop(__eax);
_pop(__edx);
_push(__ebx);
_push(_t71);
rename();
__esp = __esp + 16;
}
_push("conf/license.key");
_push(_v2084);
_push(512);
_push(_t71);
_t61 = _t66->getAbsoluteFile(char * , unsigned int , char * , 2)(_t68, __eflags);
__esp = __esp + 16;
_t62 = _t61 + 1;
__eflags = _t62;
if(_t62 == 0) {
L22:
__esp = __esp - 8;
_push(_v2084);
_push("[LICENSE] License key update is available, failed to create updated license key file - license.key under %s/conf!\n");
_t62->error(char * , ... )();
goto L4;
} else {
_push(__ebx);
_push(384);
_push(65);
_push(_t71);
open64();
_v2088 = _t62;
__esp = __esp + 16;
_t52 = _t62 + 1;
__eflags = _t52;
if(_t52 != 0) {
goto L16;
}
goto L22;
}
}
goto L16;
}
goto L3;
}

buildRegisterReqBody(char * , char * , int , 1, int , 0, int , 0, int )(
char __eax, // r0
intOrPtr __ecx, // r2
_unknown_ __edx, // r3
intOrPtr _a4, // _cfa_4
intOrPtr _a8, // _cfa_8
intOrPtr _a12, // _cfa_c
intOrPtr _a16, // _cfa_10
intOrPtr _a20, // _cfa_14
intOrPtr _a24 // _cfa_18
)
{// addr = 0x080625D0
char _v16; // _cfa_fffffff0
intOrPtr _v20; // _cfa_ffffffec
_unknown_ __ebx; // r1
_unknown_ __edi; // r4
_unknown_ __esi; // r5
signed int __ebp; // r6
_unknown_ _t28; // _t28
_unknown_ _t32; // _t32
_unknown_ _t36; // _t36
_unknown_ _t38; // _t38
intOrPtr _t39; // _t39
_unknown_ _t40; // _t40
_unknown_ _t46; // _t46
_unknown_ _t47; // _t47
_unknown_ _t48; // _t48
_unknown_ _t49; // _t49

__edx = __edx;
_push(_t38);
__esp = __esp - 24;
_push(0);
__edi = __edx;
_v20 = __ecx;
_t39 = _a4;
time();
*__esp = __eax;
srand();
rand();
*__esp = __eax;
rand();
_push(__eax);
_push("multipart/form-data; boundary=---------------------------%d%d");
_push(_a8);
_push(_t39);
snprintf();
__esp = __esp + 20;
_push(__eax);
_t40 = _t39 + 30;
_push(_t40);
_push("--%s
\nContent-Disposition: form-data; name="sel_action"
\n
\n%s
\n");
_push(_v20);
_push(__edx);
snprintf();
_t44 = __eax;
__esp = __esp + 32;
if(_a12 != 0) {
_push(_t40);
_push("--%s
\nContent-Disposition: form-data; name="lic_req"; filename="lic_req.bin"
\nContent-Type: application/octet-stream
\n
\n");
_push(_v20 - __eax);
_t36 = __edx + __eax;
_push(_t36);
snprintf();
__esp = __esp + 12;
_push(_a16);
_t48 = __eax + _t36;
_push(_a12);
_push(__edx + _t48);
memmove();
_t49 = _t48 + _a16;
*((short*)(__edx + _t49)) = 2573;
__esp = __esp + 16;
_t44 = _t49 + 2;
}
if(_a20 != 0) {
_push(_t40);
_push("--%s
\nContent-Disposition: form-data; name="license_key"; filename="license.key"
\nContent-Type: application/octet-stream
\n
\n");
_push(_v20 - _t44);
_t32 = __edi + _t44;
_push(_t32);
snprintf();
__esp = __esp + 12;
_push(_a24);
_t46 = _t44 + _t32;
_push(_a20);
_push(__edi + _t46);
memmove();
_t47 = _t46 + _a24;
*((short*)(__edi + _t47)) = 2573;
__esp = __esp + 16;
_t44 = _t47 + 2;
}
__esp = __esp - 12;
_push(_t40);
_push(_t40);
_push("--%s
\nContent-Disposition: form-data; name="Submit"
\n
\nSend
\n--%s--
\n");
_v20 = _v20 - _t44;
_push(_v20);
_t28 = __edi + _t44;
_push(_t28);
snprintf();
__esp = &_v16;
_pop(__ebx);
return _t44 + _t28;
}

License::registerLicense(char * )(
_unknown_ __ebx, // r1
_unknown_ __ecx, // r2
_unknown_ __edx, // r3
_unknown_ __edi, // r4
_unknown_ __esi, // r5
_unknown_ __eflags, // r9
_unknown_ _a4 // _cfa_4
)
{// addr = 0x080626CC
char _v12; // _cfa_fffffff4
char _v4108; // _cfa_ffffeff4
char _v5132; // _cfa_ffffebf4
char _v6156; // _cfa_ffffe7f4
signed int __ebp; // r6
_unknown_ _t8; // _t8
_unknown_ _t11; // _t11
_unknown_ _t24; // _t24

__edi = __edi;
_push(__ebx);
__esp = __esp - 6144;
_t17 = &_v5132;
_t8 = buildLicenseRequest(char * , char * , int )(_t17, 1024, _t17, __esi, __eflags);
_t31 = _t8;
_t24 = -1;
if(_t8 >= 0) {
__esp = __esp - 8;
_push(0);
_push(0);
_push(_t8);
_push(_t17);
_push(1024);
_t29 = ?_? ( &_v4108);
_t17 = ?_? ( &_v6156);
_push( ?_? ( &_v6156));
_t11 = buildRegisterReqBody(char * , char * , int , 1, int , 0, int , 0, int )(136390719, 4096, ?_? ( &_v4108));
__esp = __esp + 32;
startRegister(char * , 0, int )( &_v6156, _t11, &_v4108, __edi, _t31);
_t24 = checkResult(char * , int )(_t17, _t11, 0, _t29, 0);
}
__esp = &_v12;
_pop(__ebx);
return _t24;
}

License::migrateLicense(char * )(
_unknown_ __ebx, // r1
_unknown_ __ecx, // r2
_unknown_ __edx, // r3
_unknown_ __edi, // r4
_unknown_ __esi, // r5
_unknown_ __eflags, // r9
intOrPtr _a4 // _cfa_4
)
{// addr = 0x08062744
char _v16; // _cfa_fffffff0
char _v4124; // _cfa_ffffefe4
char _v5148; // _cfa_ffffebe4
char _v6172; // _cfa_ffffe7e4
intOrPtr _v6176; // _cfa_ffffe7e0
char _v6180; // _cfa_ffffe7dc
char _v6184; // _cfa_ffffe7d8
signed int __ebp; // r6
_unknown_ _t15; // _t15
_unknown_ _t17; // _t17
char* _t22; // _t22
intOrPtr _t28; // _t28

__esp = __esp - 6180;
_push( &_v6176);
_t22 = &_v5148;
_push(_t22);
_push(1);
_push( &_v6180);
_push( &_v6184);
_t33 = _a4;
_push(_a4);
_v6176 = 0;
_t22->verifyLicenseKey(char * , long & , 2, int , char * , int * )(__ecx, __edx, __esi, __eflags);
_t28 = _v6176;
__esp = __esp + 32;
_t37 = _t28;
_t15 = -1;
if(_t28 != 0) {
__esp = __esp - 8;
_push(_t28);
_push(_t22);
_push(0);
_push(0);
_push(1024);
_t35 = ?_? ( &_v4124);
_t23 = ?_? ( &_v6172);
_push( ?_? ( &_v6172));
_t17 = buildRegisterReqBody(char * , char * , int , 1, int , 0, int , 0, int )(136292018, 4096, ?_? ( &_v4124));
__esp = __esp + 32;
startRegister(char * , 0, int )( &_v6172, _t17, &_v4124, _t33, _t37);
_t15 = checkResult(char * , int )(_t23, _t17, 1, _t35, _t37);
}
__esp = &_v16;
return _t15;
}

License::autoMigrateLicense(char * , char * , int )(
_unknown_ __ebx, // r1
_unknown_ __ecx, // r2
_unknown_ __edx, // r3
_unknown_ __edi, // r4
_unknown_ __esi, // r5
_unknown_ __eflags, // r9
_unknown_ _a4, // _cfa_4
intOrPtr _a8, // _cfa_8
intOrPtr _a12 // _cfa_c
)
{// addr = 0x080627E4
char _v12; // _cfa_fffffff4
char _v4108; // _cfa_ffffeff4
char _v5132; // _cfa_ffffebf4
char _v6156; // _cfa_ffffe7f4
signed int __ebp; // r6
_unknown_ _t10; // _t10
_unknown_ _t13; // _t13
_unknown_ _t26; // _t26

__edi = __edi;
_push(__ebx);
__esp = __esp - 6144;
_t19 = &_v6156;
_t10 = buildLicenseRequest(char * , char * , int )(_t19, 1024, _t19, __esi, __eflags);
_t33 = _t10;
_t26 = -1;
if(_t10 >= 0) {
__esp = __esp - 8;
_push(_a12);
_push(_a8);
_push(_t10);
_push(_t19);
_push(1024);
_t31 = ?_? ( &_v4108);
_t19 = ?_? ( &_v5132);
_push( ?_? ( &_v5132));
_t13 = buildRegisterReqBody(char * , char * , int , 1, int , 0, int , 0, int )(136289991, 4096, ?_? ( &_v4108));
__esp = __esp + 32;
startRegister(char * , 0, int )( &_v5132, _t13, &_v4108, __edi, _t33);
_t26 = checkResult(char * , int )(_t19, _t13, 1, _t31, _t33);
}
__esp = &_v12;
_pop(__ebx);
return _t26;
}

License::validateLicense(char * )(
_unknown_ __ebx, // r1
_unknown_ __ecx, // r2
_unknown_ __edx, // r3
_unknown_ __edi, // r4
_unknown_ __esi, // r5
_unknown_ __eflags, // r9
intOrPtr _a4 // _cfa_4
)
{// addr = 0x08062864
char _v16; // _cfa_fffffff0
char _v4124; // _cfa_ffffefe4
char _v5148; // _cfa_ffffebe4
char _v6172; // _cfa_ffffe7e4
char _v7149; // _cfa_ffffe413
char _v7196; // _cfa_ffffe3e4
intOrPtr _v7200; // _cfa_ffffe3e0
char _v7204; // _cfa_ffffe3dc
char _v7208; // _cfa_ffffe3d8
intOrPtr _v7212; // _cfa_ffffe3d4
signed int __ebp; // r6
_unknown_ _t24; // _t24
intOrPtr _t26; // _t26
_unknown_ _t31; // _t31
_unknown_ _t36; // _t36
char* _t38; // _t38
char* _t39; // _t39
char* _t45; // _t45
intOrPtr _t47; // _t47
char* _t53; // _t53
_unknown_ _t55; // _t55
_unknown_ _t56; // _t56

__esp = __esp - 7204;
_push( &_v7200);
_t38 = &_v5148;
_push(_t38);
_push(0);
_push( &_v7204);
_push( &_v7208);
_push(_a4);
_t24 = _t38->verifyLicenseKey(char * , long & , 2, int , char * , int * )(__ecx, __edx, __esi, __eflags);
__esp = __esp + 32;
_t55 = _t24;
if(_t55 < 0) {
__eflags = _t24 - 254;
if(_t24 == 254) {
goto L1;
} else {
_t47 = _v7200;
__eflags = _t47;
_t33 = 100;
if(__eflags <= 0) {
goto L3;
} else {
_push(100);
_push(_t47);
_push(_t38);
_push(_a4);
_t36 = _t38->autoMigrateLicense(char * , char * , int )(__ecx, _t47, __edi, __esi, __eflags);
__esp = &_v16;
return _t36;
}
}
} else {
L1:
__esp = __esp - 8;
_push(_v7200);
_push(_t38);
_push(0);
_push(0);
_push(1024);
_t39 = &_v6172;
_t45 = &_v4124;
_push(_t39);
_t26 = buildRegisterReqBody(char * , char * , int , 1, int , 0, int , 0, int )(136337948, 4096, _t45);
asm("cld ");
_t53 = "http://license.litespeedtech.com/lic_check.php";
_v7212 = _t26;
_push(11 << 2);
_push(_t53);
_push( &_v7196);
memcpy();
__esp = __esp + 12;
__esp = __esp + 28;
asm("movsw ");
asm("movsb ");
_push(977);
_push(0);
_push( &_v7149);
memset();
*__esp = &s_fetch;
_t39->reset(void )(_t55);
__esp = __esp + 12;
*136614424 = registerCallback(void * , HttpFetch);
*136614428 = 0;
_push(_t39);
_push(0);
_push(_v7212);
_push( &_v4124);
_push(0);
_push( &_v7196);
_push( &s_fetch);
_t31 = _t39->startReq, char * , int , 1, int , 1, 1?...?(0, _t45, _t53 + 0x16, _t55);
__esp = __esp + 32;
_t56 = _t31;
if(_t56 != 0) {
__esp = __esp - 12;
_push("[LICENSE] Failed to send registration request.\n");
_t31->error(char * , ... )();
_t33 = 2;
__esp = __esp + 16;
__eflags = 2;
if(__eflags == 0) {
goto L5;
}
} else {
__esp = __esp - 12;
_push( &s_fetch);
_t39->process(void )(_t45, _t56);
_t33 = 0;
__esp = __esp + 16;
if(0 == 0) {
L5:
_t33 = checkResult(char * , int )(_t39, 0, 2, _t53, __eflags);
__eflags = _t33 - 255;
if(_t33 == 255) {
_t33 = 0;
}
}
}
L3:
__esp = &_v16;
return _t33;
}
}

__tcf_0(
char __ebx, // r1
intOrPtr _a4 // _cfa_4
)
{// addr = 0x080629CC
intOrPtr _v0; // _cfa_0
char _v16; // _cfa_fffffff0
intOrPtr* __esi; // r5
char* __ebp; // r6
intOrPtr _t9; // _t9
intOrPtr _t12; // _t12
intOrPtr _t13; // _t13

__ebx = __ebx;
_a4 = &s_fetch;
__esp = __ebp;
_pop(__ebp);
_push(__ebp);
__ebp = __esp;
_push(__esi);
_push(__ebx);
__esi = _a4;
_t9 = *__esi;
if(_t9 != 255) {
__esp = __esp - 12;
_push(_t9);
close();
__esp = __esp + 16;
}
__ebx = *((intOrPtr*)(__esi + 4));
if(__ebx != 0) {
__esp = __esp - 12;
_push(__ebx);
VMemBuf::~VMemBuf(void )();
*__esp = __ebx;
__ebx->operator deletevoid * ();
__esp = __esp + 16;
}
_t12 = *((intOrPtr*)(__esi + 12));
if(_t12 != 0) {
__esp = __esp - 12;
_push(_t12);
L1();
__esp = __esp + 16;
}
_t13 = *((intOrPtr*)(__esi + 44));
if(_t13 != 0) {
_v0 = _t13;
__esp = &_v16;
_pop(__ebx);
_pop(__esi);
__esp = __ebp;
_pop(__ebp);
goto __imp__free;
}
__esp = &_v16;
_pop(__ebx);
_pop(__esi);
return _t13;
}

_GLOBAL__I__ZN7LicenseC2Ev()
{// addr = 0x080629DC
signed int __ebp; // r6

__eax = &s_fetch->HttpFetch(void )();
__esp = __esp + 8;
_push( &__dso_handle);
_push(0);
_push(__tcf_0);
__cxa_atexit();
__esp = __esp + 16;
return __eax;
}

GeoInfo::GeoInfo(void )(
intOrPtr _a4 // _cfa_4
)
{// addr = 0x08062A08
_unknown_ __edi; // r4
signed int __ebp; // r6
intOrPtr* _t5; // _t5

_t5 = _a4;
*_t5 = -1;
asm("cld ");
_push(5 << 2);
_push(0);
_push(_t5 + 4);
memset();
__esp = __esp + 12;
return 0;
}



خوب در این کد تمام مراحل قابل رویت هست و فقط نیاز به بررسی توسط شخصی کاملا مسلط به این زبان داره فایل کامل دکامپایل نیز پیوست

hamid.soltani92
November 1st, 2014, 17:20
عملا دارید حقوق سازنده رو زیر پا می‌گذارید. شرم آوره!
قانون انجمن:
36-2: ایجاد هر گونه تاپیک در خصوص قالب های ریپ شده ، اسکریپت و موارد دارای کپی رایت ممنوع می باشد.

yossef
November 2nd, 2014, 11:24
دوست من وجدانا کارتون درست نیست.