کد PHP:
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;
}
خوب در این کد تمام مراحل قابل رویت هست و فقط نیاز به بررسی توسط شخصی کاملا مسلط به این زبان داره فایل کامل دکامپایل نیز پیوست