1 فایل پیوست  
	
	
		دوستان اشنا به زبان c لطفا مطالعه کنید
	
	
		با سلام
خوب برای تشخیص و ساخت جنرتور لایسنس نیاز به همکاری سایر دوستان هست.
خوب ابتدا در فایل پیوست من فایل دکامپایل شده لایت اسپید رو میزارم اگر نیاز شد ببینید
ولی در کل سیستم لایسنس بر پایه این چند فنکشین هستت
	کد 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;
} 
 خوب در این کد تمام مراحل  قابل رویت هست و فقط نیاز به بررسی توسط شخصی کاملا مسلط به این زبان داره فایل کامل  دکامپایل نیز پیوست
	 
	
	
	
		پاسخ : دوستان اشنا به زبان c لطفا مطالعه کنید
	
	
		عملا دارید حقوق سازنده رو زیر پا میگذارید. شرم آوره!
قانون انجمن:
36-2: ایجاد هر گونه تاپیک در خصوص قالب های ریپ شده ، اسکریپت و موارد دارای کپی رایت ممنوع می باشد.
	 
	
	
	
		پاسخ : دوستان اشنا به زبان c لطفا مطالعه کنید
	
	
		دوست من وجدانا کارتون درست نیست.