首页
社区
课程
招聘
[转帖]Microsoft的25位CDKey里有什么?
发表于: 2005-3-17 12:07 8183

[转帖]Microsoft的25位CDKey里有什么?

2005-3-17 12:07
8183
btw:不错的一篇老文章,估计老大们都看过了。给像我这样的新手看。

Microsoft的25位CDKey里有什么?

Author: Bug Fix
Date: 2002-2-7 15:37:56

From:www.sometips.com

    从Win98起,M$(编辑注:即Microsoft,下同) 的产品安装Key从原来的10位数字改为25位字符,这一改动,代表着M$告别了简单的校验和,从此投入了椭圆曲线法的怀抱。从密码学的角度来看,这绝对是一个里程碑,因为当时椭圆曲线法仍在研究论证阶段,M$是第一个将之实用以商业产品的厂家。
    那么在这25个字符里到底有什么呢?

    1.Base24
    这25个字符实际是114bits的数据用Base24进行UUCode后的结果,做为安装Key,这个Base必须绝对避免误认,
所以M$选择了以下这24个字符做为UUCode的Base:
    BCDFGHJKMPQRTVWXY2346789
    所以,如果你的安装Key 有这24个字符以外的字符的话,你完全可以把它丢到垃圾筒里去了━━不用试就知道它
根本通不过了。

    2.114 bits
    UUDecode后得到的114位按Intel高位在后的格式表示如下:
      [ X XXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXX ] Total 114 Bits
        | | | \ 55 Bits Sign
        | | \ 28 Bits Hash
        | \ 30 Bits Serial \ 31 Bits Data
         \ 1 Bits Flag /
    Flag: 不明标志,目前所见的各类Key中这一位总是为0。
    Serial:用户序列号,转成十进制表示为AAAABBBBBB,对应显示为:
            零售版:xxxxx-AAA-BBBBBBx-xxxxx
            OEM版: xxxxx-OEM-0AAAABx-BBBBB
    以上31bits总称为Data,是CDKey中的基本部分。
    Hash:Data经特定处理得到的结果,见后文。
    Sign:Hash值的椭圆曲线签名,见后文。

    3.椭圆曲线签名算法
    要说明椭圆曲线签名算法可不是一件容易的事,有兴趣的可以自己用“椭圆曲线”或是“elliptic curve”在搜索引擎
找相关的资料来看吧,这里只简单介绍M$的用法。
    所谓椭圆曲线是指这样一类曲线方程:
    y^2 + a1*xy + a3*y = x^3 + a2*x^2 + a4*x + a6
    在密码学里用的是它的两个特例,而M$用的更是这两个特例中的特例:
    y^2 = x^3 + a*x + b ( mod p )
    当a、b、p选定后,就可以确定一个椭圆曲线,再选择一个生成点 G(gx,gy),
于是,存在一个最小的整数q使得q*G=O,然后,再任意选择一个整数 k<q,求出点
K(kx,ky)=k*G,这样椭圆曲线签名算法的Key就全生成了:
    公开密钥为:a,b,p,G(gx,gy),K(kx,ky)
    私有密钥为:a,b,p,G(gx,gy),q,k
    要对Data签名时:
    A.先任意选择一个整数r<q,求点R(rx,ry)=r*G;
    B.将Data、rx、ry共100个字节求SHA-1,取结果中的28位得到Hash;
    C.求Sign = r - Hash * k ( mod q );
    D.把Data、Hash、Sign三个数组合后UUCode得到25位CDKey。
    验证CDKey时:
    A.把25位CDKey先UUDecode再拆分后提到Data、Hash、Sign;
    B.求点R( rx, ry ) = Sing * G + Hash * K ( mod p );
    C.将Data、rx、ry共100个字节求SHA-1,取结果中的28位得到Hash';
    D.如果Hash = Hash',则该CDKey为有效Key。

    4.BINK
    从前面的说明可以看出,为了验证CDKey,M$ 必须公开椭圆曲线签名算法中的公开密钥,那么这个公开密钥放在
哪里呢?答案是在pidgen.dll里的BINK资源里(其他产品如Office则被包在*.MSI),而且一共有两组,从目前已知的
Key组合来看,第一组密钥是用以零售版本的,第二组则用于OEM版本。两个产品的Key能否通用就在于对应的密钥
是否相同,比如中文版的Windows 2000的Pro/Srv/AdvSrv的第二组密钥也是相同的,即一个PWindows 2000 Pro的
OEM版的Key,可同时供 PWindows 2000 Srv/Adv的OEM版使用。

    5.破解及其难度
    要破解CDKey的生成算法,必须从M$ 公开的密钥中求出对应的私有密钥,即只要求出q和k即可。从BINK中公开的
密钥来看,p 是一个384 bits的质数,看起来计算量好象至少要O(2^168)才行,但M$设计中一个缺陷(?)使实际
工作量降低到只有O(2^28)就可以了。
    为什么相差这么远?
    回头看看3.C中的式子: Sign = r - Hash * k ( mod q )
    通常情况下q可以是很大的值,因此Sign应该也很大,但M$ 为了减少用户输入的CDKey的数量,把Sign的值限死在
55 bits,因此,自然也限定了q最多也不能超过56 bits。依此类推,由于k<q,所以k也不能超过56 bits,也就是说
我们面对的只是两个最多2^56的数据而已,用目前最普通的算法也只有O(2^28)的工作量。
    作者曾经在一台赛扬II 800的机器上只用6个小时就解出某组密钥的q值,最多时在一台雷鸟1G上用了28个小时才
算出另一组密钥的k值, 其他平均大约都在十个小时左右就可以求出。

    6.实际例子
> mskshow CCC64-69Q48-Y3KWW-8V9GV-TVKRM
Key CCC64-69Q48-Y3KWW-8V9GV-TVKRM is for P-WinXP_Pro, Sign is OK.
Flag = 0, Serial = 005-080936, Hash = 5AA62EB, Sign = ED6AA259.
  This key is for Windows XP Pro, Simplified chinese OEM/MSDN, serial is xxxxx-005-080936x-xxxxx

> mskshow GJ27Y-XHH2X-GRR3G-Q3WVJ-H9P33
Key GJ27Y-XHH2X-GRR3G-Q3WVJ-H9P33 is for E-WinXP_Pro-2, Sign is OK.
Flag = 0, Serial = OEM-006400-00001, Hash = 2177C11, Sign = 79B54F13.
  This key is for Windows XP Pro, English Corporate Select Editions, serial is xxxxx-OEM-006400x-00001

> mskshow BCC64-69Q48-Y3KWW-8V9GV-TVKRM
Key BCC64-69Q48-Y3KWW-8V9GV-TVKRM is for Unknow Product, Sign is not check
Flag = 0, Serial = 005-080936, Hash = 5AA62EB, Sign = 564E8259.
  This key is for some product I don't know, serial is xxxxx-005-080936x-xxxxx

> mskshow ACC64-69Q48-Y3KWW-8V9GV-TVKRM
Invaild key: ACC64-69Q48-Y3KWW-8V9GV-TVKRM.
  This key is not a vaild M$ CD key.

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (4)
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
2002年就出来了,怎么算号机出来的好像要迟一些!为什么在2002年我们还用破解的XP,用算号机不是很好吗?
2005-3-17 12:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wyf
3
现在M$的网站下补丁要验证是否正版
是否采用其他方法
2005-3-17 13:31
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
国内的软件才用这样的方法多吗?

我就看到过一个,匪夷所思

编译后的 setup.ins 看不明白

如下

希望没有打扰各位,需要的,可以给我留言,我提供原程序。国家xx部的

// Generated with isDcc v1.22
// (c) 1998 Andrew de Quincey
// isDcc v2.00 (c) 2000 Mr. Smith
// isDcc v2.10 (c) 2001 Mr. Smith
// original file version = 5.00.000

declare
    // ------------- STRING VARIABLES --------------
    string string0;
    string string1;
    string string2;
    string string3;
    string string4;
    string string5;
    string string6;
    string string7;
    string string8;

    // ------------- NUMBER VARIABLES --------------
    number number1;
    number number2;
    number number3;
    number number4;
    number number5;
    number number6;
    number number7;
    number number8;
    number number9;
    number number10;
    number number11;
    number number12;
    number number13;
    number number14;
    number number15;
    number number16;
    number number17;
    number number18;
    number number19;
    number number20;
    number number21;
    number number22;
    number number23;
    number number24;
    number number25;
    number number26;
    number number27;
    number number28;
    number number29;
    number number30;
    number number31;
    number number32;
    number number33;
    number number34;
    number number35;
    number number36;
    number number37;

    // ------------- DATA TYPES --------------
    typedef _sdRECT
    begin
        int left;
        int top;
        int right;
        int bottom;
    end;

    typedef _sdSIZE
    begin
        int cx;
        int cy;
    end;

    // ------------- FUNCTION PROTOTYPES --------------
    prototype function1(string, string, BYREF string, BYREF string, BYREF string);
    prototype function5(string, string, BYREF string, number);
    prototype function6(string, string);
    prototype function8(string, string, BYREF string);
    prototype function26(string);
    prototype function27(string, string, string, string);
    prototype function29(string, string, number, string, number);
    prototype function30(string, string, string, string, string, BYREF number, BYREF number);
    prototype function31(number);
    prototype function32(number);
    prototype function33(string, number, number, string);
    prototype function34();
    prototype function35();
    prototype function36(int, string);
    prototype function37(int, BYREF int, BYREF BOOL);
    prototype function38(BYREF string, BYREF string, string, BYREF BOOL);
    prototype function39(string, int, string);
    prototype function40(int, string, int);
    prototype function41(string, number, string, number, number);
    prototype function42(HWND);
    prototype function43(BYREF string, string, string, BYREF number);
    prototype function44(int, int, BYREF string, BYREF string);
    prototype function45(int, int, BYREF string, BYREF string, BYREF string);
    prototype function46(int, int);
    prototype function47(string, int, string, int, int);
    prototype function51(string, string, string);
    prototype function53(string, number, number, string, string);
    prototype function55(string, number, number, number);
    prototype function56(string, number, number, number);
    prototype function57(string, number, number);
    prototype function58(BYREF string);
    prototype function59(BYREF string, BYREF string);
    prototype function60(number, number, string, string);
    prototype function61(BYREF string, string, LIST, LIST);
    prototype function62(BYREF string, string);
    prototype function63();
    prototype GDI.SelectObject(HWND, HWND);
    prototype GDI.GetTextExtentPoint(HWND, string, int, LIST);
    prototype USER.EnableWindow(HWND, long);
    prototype USER.GetClassName(HWND, LIST, int);
    prototype USER.GetDC(HWND);
    prototype USER.GetDlgItem(HWND, int);
    prototype USER.GetFocus();
    prototype USER.GetWindowLong(HWND, int);
    prototype USER.GetWindowRect(HWND, LIST);
    prototype USER.GetWindowWord(HWND, int);
    prototype USER.IsIconic(HWND);
    prototype USER.IsWindow(HWND);
    prototype USER.IsWindowEnabled(HWND);
    prototype USER.MoveWindow(HWND, int, int, int, int, int);
    prototype USER.ReleaseDC(HWND, HWND);
    prototype USER.SetFocus(HWND);
    prototype USER.SetWindowText(HWND, string);
    prototype USER.ShowWindow(HWND, long);
    prototype USER.LoadString(int, int, string, int);
    prototype KERNEL.GetModuleHandle(string);
    prototype USER.GetClientRect(HWND, LIST);
    prototype USER.SetWindowPos(HWND, int, int, int, int, int, int);
    prototype USER.PostMessage(HWND, long, long, number);
    prototype USER.ShowCursor(long);
    prototype USER.SystemParametersInfo(HWND, int, LIST, int);
    prototype function89();
    prototype function90();
    prototype function91(number);
    prototype function92();
    prototype function93();
    prototype function94();
    prototype function95();
    prototype function96();
    prototype function97();
    prototype function98();
    prototype function99();
    prototype function100();
    prototype function101();
    prototype function102();
    prototype function103();
    prototype function104();
    prototype function105();
    prototype function106(string);

    // ------------- MAIN PROGRAM CODE --------------
program
start:
000C92:0002:     Disable(12);
000C99:00B5:     function99();
000CA1:00B5:     function97();
000CA9:00B5:     function98();
000CB1:00B5:     function89();
000CB9:0021:     number37 = LAST_RESULT;
000CC1:0128:     number37 = number37 < 0;
000CD3:0022:     if (number37 = 0) then
                     goto label1;
                 endif;
000CE1:002C:     goto label6;

label1: //Ref: 000CD3  
000CEA:00B5:     function92();
000CF2:0021:     number37 = LAST_RESULT;
000CFA:0128:     number37 = number37 < 0;
000D0C:0022:     if (number37 = 0) then
                     goto label2;
                 endif;
000D1A:002C:     goto label6;

label2: //Ref: 000D0C  
000D23:00B5:     function90();
000D2B:0021:     number37 = LAST_RESULT;
000D33:0128:     number37 = number37 < 0;
000D45:0022:     if (number37 = 0) then
                     goto label3;
                 endif;
000D53:002C:     goto label6;

label3: //Ref: 000D45  
000D5C:00B5:     function93();
000D64:0021:     number37 = LAST_RESULT;
000D6C:0128:     number37 = number37 < 0;
000D7E:0022:     if (number37 = 0) then
                     goto label4;
                 endif;
000D8C:002C:     goto label6;

label4: //Ref: 000D7E  
000D95:00B5:     function94();
000D9D:0021:     number37 = LAST_RESULT;
000DA5:0128:     number37 = number37 < 0;
000DB7:0022:     if (number37 = 0) then
                     goto label5;
                 endif;
000DC5:002C:     goto label6;

label5: //Ref: 000DB7  
000DCE:00B5:     function95();
000DD6:0021:     number37 = LAST_RESULT;
000DDE:0128:     number37 = number37 < 0;
000DF0:0022:     if (number37 = 0) then
                     goto label6;
                 endif;
000DFE:002C:     goto label6;

label6: //Ref: 000CE1  000D1A  000D53  000D8C  000DC5  000DF0  000DFE  
000E07:00B5:     function96();
000E0F:0022:     if (number35 = 0) then
                     goto label7;
                 endif;
000E1D:0159:     abort;

label7: //Ref: 000E0F  
000E23:002B:     exit;

endprogram

    // ------------- FUNCTION DEFS --------------
    // ------------- FUNCTION function1 --------------
    function function1(pString0, pString1, pString2, pString3, pString4)
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        number lNumber5;
        number lNumber6;
        string lString0;
        string lString1;
    begin
0035EF:0013:         lString0 = "SdRegisterUserEx";
003607:0021:         number1 = 0x2ee2;
003611:0128:         lNumber5 = MODE = 2;
003623:0022:         if (lNumber5 = 0) then
                         goto label148;
                     endif;
003631:00B5:         function43(string1, lString0, pString0, number6);
003645:015D:         SilentReadData(string1, "Result", 2, lString1, lNumber1);
00365E:0128:         lNumber5 = lNumber1 != 12;
003670:0128:         lNumber6 = lNumber1 != 2;
003682:0127:         lNumber5 = lNumber5 && lNumber6;
00368D:0022:         if (lNumber5 = 0) then
                         goto label147;
                     endif;
00369B:015D:         SilentReadData(string1, "szName", 1, pString2, lNumber3);
0036B4:015D:         SilentReadData(string1, "szCompany", 1, pString3, lNumber3);
0036D0:015D:         SilentReadData(string1, "szSerial", 1, pString4, lNumber3);

label147: //Ref: 00368D  
0036EF:012F:         return(lNumber1);

label148: //Ref: 003623  
0036FA:0128:         lNumber5 = number2 = 0;
00370C:0022:         if (lNumber5 = 0) then
                         goto label149;
                     endif;
00371A:00B5:         function34();

label149: //Ref: 00370C  
003726:0113:         EzDefineDialog(lString0, "", "", 0x2ee2);
003736:0021:         lNumber5 = LAST_RESULT;
00373E:0128:         lNumber5 = lNumber5 = -1;
003750:0022:         if (lNumber5 = 0) then
                         goto label150;
                     endif;
00375E:012F:         return(-1);

label150: //Ref: 003750  
00376B:0021:         lNumber0 = 0;

label151: //Ref: 003C03  
00377B:0128:         lNumber5 = lNumber0 = 0;
00378D:0022:         if (lNumber5 = 0) then
                         goto label168;
                     endif;
00379B:008C:         WaitOnDialog(lString0);
0037A0:0021:         lNumber1 = LAST_RESULT;
0037AE:0128:         lNumber5 = lNumber1 = -100;
0037C0:0022:         if (lNumber5 = 0) then
                         goto label156;
                     endif;
0037CE:0023:         StrCompare(pString1, "");
0037D6:0128:         lNumber5 = LAST_RESULT != 0;
0037E8:0022:         if (lNumber5 = 0) then
                         goto label153;
                     endif;
0037F6:00B5:         function39(lString0, 0x2c6, pString1);

label153: //Ref: 0037E8  
00380D:0023:         StrCompare(pString2, "");
003815:0128:         lNumber5 = LAST_RESULT = 0;
003827:0023:         StrCompare(pString3, "");
00382F:0128:         lNumber6 = LAST_RESULT = 0;
003841:0127:         lNumber5 = lNumber5 && lNumber6;
00384C:0022:         if (lNumber5 = 0) then
                         goto label154;
                     endif;
00385A:00B5:         function59(pString2, pString3);
003868:00B5:         function58(pString2);
003873:00B5:         function58(pString3);

label154: //Ref: 00384C  
003882:0091:         CtrlSetText(lString0, 0x12d, pString2);
00388F:0091:         CtrlSetText(lString0, 0x12e, pString3);
00389C:0091:         CtrlSetText(lString0, 0x12f, pString4);
0038A9:009A:         CmdGetHwndDlg(lString0);
0038AE:0021:         lNumber4 = LAST_RESULT;
0038B6:00B5:         function33(lString0, lNumber4, 64, string0);
0038CC:0023:         StrCompare(pString0, "");
0038D4:0128:         lNumber5 = LAST_RESULT != 0;
0038E6:0022:         if (lNumber5 = 0) then
                         goto label155;
                     endif;
0038F4:00B4:         USER.SetWindowText(lNumber4, pString0);

label155: //Ref: 0038E6  
003903:00B5:         function45(lNumber4, 1, pString2, pString3, pString4);
00391C:002C:         goto label167;

label156: //Ref: 0037C0  
003925:0128:         lNumber5 = lNumber1 = 0x12d;
003937:0022:         if (lNumber5 = 0) then
                         goto label158;
                     endif;
003945:009E:         CtrlGetSubCommand(lString0);
00394A:0021:         lNumber2 = LAST_RESULT;
003952:0128:         lNumber5 = lNumber2 = -1007;
003964:0022:         if (lNumber5 = 0) then
                         goto label157;
                     endif;
003972:0092:         CtrlGetText(lString0, 0x12d, pString2);

label157: //Ref: 003964  
003983:00B5:         function45(lNumber4, 1, pString2, pString3, pString4);
00399C:002C:         goto label167;

label158: //Ref: 003937  
0039A5:0128:         lNumber5 = lNumber1 = 0x12e;
0039B7:0022:         if (lNumber5 = 0) then
                         goto label160;
                     endif;
0039C5:009E:         CtrlGetSubCommand(lString0);
0039CA:0021:         lNumber2 = LAST_RESULT;
0039D2:0128:         lNumber5 = lNumber2 = -1007;
0039E4:0022:         if (lNumber5 = 0) then
                         goto label159;
                     endif;
0039F2:0092:         CtrlGetText(lString0, 0x12e, pString3);

label159: //Ref: 0039E4  
003A03:00B5:         function45(lNumber4, 1, pString2, pString3, pString4);
003A1C:002C:         goto label167;

label160: //Ref: 0039B7  
003A25:0128:         lNumber5 = lNumber1 = 0x12f;
003A37:0022:         if (lNumber5 = 0) then
                         goto label162;
                     endif;
003A45:009E:         CtrlGetSubCommand(lString0);
003A4A:0021:         lNumber2 = LAST_RESULT;
003A52:0128:         lNumber5 = lNumber2 = -1007;
003A64:0022:         if (lNumber5 = 0) then
                         goto label161;
                     endif;
003A72:0092:         CtrlGetText(lString0, 0x12f, pString4);

label161: //Ref: 003A64  
003A83:00B5:         function45(lNumber4, 1, pString2, pString3, pString4);
003A9C:002C:         goto label167;

label162: //Ref: 003A37  
003AA5:0128:         lNumber5 = lNumber1 = 1;
003AB7:0022:         if (lNumber5 = 0) then
                         goto label163;
                     endif;
003AC5:0021:         lNumber1 = 1;
003ACF:0021:         lNumber0 = 1;
003AD9:002C:         goto label167;

label163: //Ref: 003AB7  
003AE2:0128:         lNumber5 = lNumber1 = 12;
003AF4:0022:         if (lNumber5 = 0) then
                         goto label164;
                     endif;
003B02:0021:         lNumber1 = 12;
003B0C:0021:         lNumber0 = 1;
003B16:002C:         goto label167;

label164: //Ref: 003AF4  
003B1F:0128:         lNumber5 = lNumber1 = -1;
003B31:0022:         if (lNumber5 = 0) then
                         goto label165;
                     endif;
003B3F:00B5:         function36(-1, "SdRegisterUserEx");
003B5F:0021:         lNumber1 = -1;
003B69:0021:         lNumber0 = 1;
003B73:002C:         goto label167;

label165: //Ref: 003B31  
003B7C:0128:         lNumber5 = lNumber1 = -200;
003B8E:0022:         if (lNumber5 = 0) then
                         goto label166;
                     endif;
003B9C:00B5:         function37(lNumber4, lNumber1, lNumber0);
003BAD:002C:         goto label167;

label166: //Ref: 003B8E  
003BB6:00B5:         function31(lNumber1);
003BC1:0021:         lNumber5 = LAST_RESULT;
003BC9:00B5:         function32(lNumber1);
003BD4:0021:         lNumber6 = LAST_RESULT;
003BDC:0127:         lNumber5 = lNumber5 && lNumber6;
003BE7:0022:         if (lNumber5 = 0) then
                         goto label167;
                     endif;
003BF5:0021:         lNumber0 = 1;

label167: //Ref: 00391C  00399C  003A1C  003A9C  003AD9  003B16  003B73  003BAD  003BE7  
003C03:002C:         goto label151;

label168: //Ref: 00378D  
003C0C:008D:         EndDialog(lString0);
003C11:008E:         ReleaseDialog(lString0);
003C16:00B5:         function35();
003C1E:00B5:         function43(string1, lString0, pString0, number6);
003C32:015E:         SilentWriteData(string1, "szName", 1, pString2, 0);
003C4D:015E:         SilentWriteData(string1, "szCompany", 1, pString3, 0);
003C6B:015E:         SilentWriteData(string1, "szSerial", 1, pString4, 0);
003C88:015E:         SilentWriteData(string1, "Result", 2, "", lNumber1);
003CA1:012F:         return(lNumber1);
003CA8:00B8:         return;
    end;

    // ------------- FUNCTION function5 --------------
    function function5(pString0, pString1, pString2, pNumber0)
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        number lNumber5;
        string lString0;
        string lString1;
        string lString2;
    begin
004DBB:0013:         lString0 = "SdAskDestPath";
004DD0:0021:         number1 = 0x2ee5;
004DDA:0013:         lString1 = pString2;
004DE2:0128:         lNumber4 = MODE = 2;
004DF4:0022:         if (lNumber4 = 0) then
                         goto label235;
                     endif;
004E02:00B5:         function43(string1, lString0, pString0, number5);
004E16:015D:         SilentReadData(string1, "Result", 2, lString2, lNumber0);
004E2F:0128:         lNumber4 = lNumber0 != 12;
004E41:0128:         lNumber5 = lNumber0 != 2;
004E53:0127:         lNumber4 = lNumber4 && lNumber5;
004E5E:0022:         if (lNumber4 = 0) then
                         goto label234;
                     endif;
004E6C:015D:         SilentReadData(string1, "szDir", 1, pString2, lNumber1);

label234: //Ref: 004E5E  
004E88:012F:         return(lNumber0);

label235: //Ref: 004DF4  
004E93:0128:         lNumber4 = number2 = 0;
004EA5:0022:         if (lNumber4 = 0) then
                         goto label236;
                     endif;
004EB3:00B5:         function34();

label236: //Ref: 004EA5  
004EBF:0113:         EzDefineDialog(lString0, "", "", 0x2ee5);
004ECF:0021:         lNumber4 = LAST_RESULT;
004ED7:0128:         lNumber4 = lNumber4 = -1;
004EE9:0022:         if (lNumber4 = 0) then
                         goto label237;
                     endif;
004EF7:012F:         return(-1);

label237: //Ref: 004EE9  
004F04:0021:         lNumber3 = 0;

label238: //Ref: 0051D7  
004F14:0128:         lNumber4 = lNumber3 = 0;
004F26:0022:         if (lNumber4 = 0) then
                         goto label249;
                     endif;
004F34:008C:         WaitOnDialog(lString0);
004F39:0021:         lNumber0 = LAST_RESULT;
004F47:0128:         lNumber4 = lNumber0 = -100;
004F59:0022:         if (lNumber4 = 0) then
                         goto label242;
                     endif;
004F67:0091:         CtrlSetText(lString0, -2147482933, lString1);
004F74:0023:         StrCompare(pString1, "");
004F7C:0128:         lNumber4 = LAST_RESULT != 0;
004F8E:0022:         if (lNumber4 = 0) then
                         goto label240;
                     endif;
004F9C:00B5:         function39(lString0, 0x2ce, pString1);

label240: //Ref: 004F8E  
004FB3:009A:         CmdGetHwndDlg(lString0);
004FB8:0021:         lNumber2 = LAST_RESULT;
004FC0:00B5:         function33(lString0, lNumber2, pNumber0, string0);
004FD4:0023:         StrCompare(pString0, "");
004FDC:0128:         lNumber4 = LAST_RESULT != 0;
004FEE:0022:         if (lNumber4 = 0) then
                         goto label241;
                     endif;
004FFC:00B4:         USER.SetWindowText(lNumber2, pString0);

label241: //Ref: 004FEE  
00500B:002C:         goto label248;

label242: //Ref: 004F59  
005014:0128:         lNumber4 = lNumber0 = 196;
005026:0022:         if (lNumber4 = 0) then
                         goto label243;
                     endif;
005034:0021:         lNumber1 = MODE;
00503C:0021:         MODE = 0;
005046:0158:         SelectDir("", "", lString1, 1);
005056:0091:         CtrlSetText(lString0, -2147482933, lString1);
005063:0021:         MODE = lNumber1;
00506B:002C:         goto label248;

label243: //Ref: 005026  
005074:0128:         lNumber4 = lNumber0 = 1;
005086:0022:         if (lNumber4 = 0) then
                         goto label244;
                     endif;
005094:0013:         pString2 = lString1;
00509C:0021:         lNumber0 = 1;
0050A6:0021:         lNumber3 = 1;
0050B0:002C:         goto label248;

label244: //Ref: 005086  
0050B9:0128:         lNumber4 = lNumber0 = 12;
0050CB:0022:         if (lNumber4 = 0) then
                         goto label245;
                     endif;
0050D9:0021:         lNumber0 = 12;
0050E3:0021:         lNumber3 = 1;
0050ED:002C:         goto label248;

label245: //Ref: 0050CB  
0050F6:0128:         lNumber4 = lNumber0 = -1;
005108:0022:         if (lNumber4 = 0) then
                         goto label246;
                     endif;
005116:00B5:         function36(-1, "SdAskDestPath");
005133:0021:         lNumber0 = -1;
00513D:0021:         lNumber3 = 1;
005147:002C:         goto label248;

label246: //Ref: 005108  
005150:0128:         lNumber4 = lNumber0 = -200;
005162:0022:         if (lNumber4 = 0) then
                         goto label247;
                     endif;
005170:00B5:         function37(lNumber2, lNumber0, lNumber3);
005181:002C:         goto label248;

label247: //Ref: 005162  
00518A:00B5:         function31(lNumber0);
005195:0021:         lNumber4 = LAST_RESULT;
00519D:00B5:         function32(lNumber0);
0051A8:0021:         lNumber5 = LAST_RESULT;
0051B0:0127:         lNumber4 = lNumber4 && lNumber5;
0051BB:0022:         if (lNumber4 = 0) then
                         goto label248;
                     endif;
0051C9:0021:         lNumber3 = 1;

label248: //Ref: 00500B  00506B  0050B0  0050ED  005147  005181  0051BB  
0051D7:002C:         goto label238;

label249: //Ref: 004F26  
0051E0:008D:         EndDialog(lString0);
0051E5:008E:         ReleaseDialog(lString0);
0051EA:00B5:         function35();
0051F2:00B5:         function43(string1, lString0, pString0, number5);
005206:015E:         SilentWriteData(string1, "szDir", 1, pString2, 0);
005220:015E:         SilentWriteData(string1, "Result", 2, "", lNumber0);
005239:012F:         return(lNumber0);
005240:00B8:         return;
    end;

    // ------------- FUNCTION function6 --------------
    function function6(pString0, pString1)
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        number lNumber5;
        number lNumber6;
        string lString0;
        string lString1;
    begin
00525A:0013:         lString0 = "SdWelcome";
00526B:0021:         number1 = 0x2ee6;
005275:0128:         lNumber5 = MODE = 2;
005287:0022:         if (lNumber5 = 0) then
                         goto label251;
                     endif;
005295:00B5:         function43(string1, lString0, pString0, number15);
0052A9:015D:         SilentReadData(string1, "Result", 2, lString1, lNumber0);
0052C2:012F:         return(lNumber0);

label251: //Ref: 005287  
0052CD:0128:         lNumber5 = number2 = 0;
0052DF:0022:         if (lNumber5 = 0) then
                         goto label252;
                     endif;
0052ED:00B5:         function34();

label252: //Ref: 0052DF  
0052F9:0113:         EzDefineDialog(lString0, "", "", 0x2ee6);
005309:0021:         lNumber5 = LAST_RESULT;
005311:0128:         lNumber5 = lNumber5 = -1;
005323:0022:         if (lNumber5 = 0) then
                         goto label253;
                     endif;
005331:012F:         return(-1);

label253: //Ref: 005323  
00533E:0021:         lNumber4 = 0;

label254: //Ref: 00559A  
00534E:0128:         lNumber5 = lNumber4 = 0;
005360:0022:         if (lNumber5 = 0) then
                         goto label264;
                     endif;
00536E:008C:         WaitOnDialog(lString0);
005373:0021:         lNumber0 = LAST_RESULT;
005381:0128:         lNumber5 = lNumber0 = -100;
005393:0022:         if (lNumber5 = 0) then
                         goto label258;
                     endif;
0053A1:0023:         StrCompare(pString1, "");
0053A9:0128:         lNumber5 = LAST_RESULT != 0;
0053BB:0022:         if (lNumber5 = 0) then
                         goto label256;
                     endif;
0053C9:00B5:         function39(lString0, 0x2c6, pString1);

label256: //Ref: 0053BB  
0053E0:009A:         CmdGetHwndDlg(lString0);
0053E5:0021:         lNumber3 = LAST_RESULT;
0053ED:00B5:         function33(lString0, lNumber3, 8, string0);
005403:0023:         StrCompare(pString0, "");
00540B:0128:         lNumber5 = LAST_RESULT != 0;
00541D:0022:         if (lNumber5 = 0) then
                         goto label257;
                     endif;
00542B:00B4:         USER.SetWindowText(lNumber3, pString0);

label257: //Ref: 00541D  
00543A:002C:         goto label263;

label258: //Ref: 005393  
005443:0128:         lNumber5 = lNumber0 = 1;
005455:0022:         if (lNumber5 = 0) then
                         goto label259;
                     endif;
005463:0021:         lNumber0 = 1;
00546D:0021:         lNumber4 = 1;
005477:002C:         goto label263;

label259: //Ref: 005455  
005480:0128:         lNumber5 = lNumber0 = 12;
005492:0022:         if (lNumber5 = 0) then
                         goto label260;
                     endif;
0054A0:0021:         lNumber0 = 12;
0054AA:0021:         lNumber4 = 1;
0054B4:002C:         goto label263;

label260: //Ref: 005492  
0054BD:0128:         lNumber5 = lNumber0 = -1;
0054CF:0022:         if (lNumber5 = 0) then
                         goto label261;
                     endif;
0054DD:00B5:         function36(-1, "SdWelcome");
0054F6:0021:         lNumber0 = -1;
005500:0021:         lNumber4 = 1;
00550A:002C:         goto label263;

label261: //Ref: 0054CF  
005513:0128:         lNumber5 = lNumber0 = -200;
005525:0022:         if (lNumber5 = 0) then
                         goto label262;
                     endif;
005533:00B5:         function37(lNumber3, lNumber0, lNumber4);
005544:002C:         goto label263;

label262: //Ref: 005525  
00554D:00B5:         function31(lNumber0);
005558:0021:         lNumber5 = LAST_RESULT;
005560:00B5:         function32(lNumber0);
00556B:0021:         lNumber6 = LAST_RESULT;
005573:0127:         lNumber5 = lNumber5 && lNumber6;
00557E:0022:         if (lNumber5 = 0) then
                         goto label263;
                     endif;
00558C:0021:         lNumber4 = 1;

label263: //Ref: 00543A  005477  0054B4  00550A  005544  00557E  
00559A:002C:         goto label254;

label264: //Ref: 005360  
0055A3:008D:         EndDialog(lString0);
0055A8:008E:         ReleaseDialog(lString0);
0055AD:00B5:         function35();
0055B5:00B5:         function43(string1, lString0, pString0, number15);
0055C9:015E:         SilentWriteData(string1, "Result", 2, "", lNumber0);
0055E2:012F:         return(lNumber0);
0055E9:00B8:         return;
    end;

    // ------------- FUNCTION function8 --------------
    function function8(pString0, pString1, pString2)
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        number lNumber5;
        number lNumber6;
        number lNumber7;
        number lNumber8;
        number lNumber9;
        number lNumber10;
        string lString0;
        string lString1;
        string lString2;
        string lString3;
        string lString4;
        string lString5;
    begin
005AB6:0013:         lString0 = "SdSelectFolder";
005ACC:0021:         number1 = 0x2ee8;
005AD6:0128:         lNumber8 = MODE = 2;
005AE8:0022:         if (lNumber8 = 0) then
                         goto label284;
                     endif;
005AF6:00B5:         function43(string1, lString0, pString0, number17);
005B0A:015D:         SilentReadData(string1, "Result", 2, lString1, lNumber0);
005B23:0128:         lNumber8 = lNumber0 != 12;
005B35:0128:         lNumber9 = lNumber0 != 2;
005B47:0127:         lNumber8 = lNumber8 && lNumber9;
005B52:0022:         if (lNumber8 = 0) then
                         goto label283;
                     endif;
005B60:015D:         SilentReadData(string1, "szFolder", 1, pString2, lNumber2);

label283: //Ref: 005B52  
005B7F:012F:         return(lNumber0);

label284: //Ref: 005AE8  
005B8A:0128:         lNumber8 = number2 = 0;
005B9C:0022:         if (lNumber8 = 0) then
                         goto label285;
                     endif;
005BAA:00B5:         function34();

label285: //Ref: 005B9C  
005BB6:0113:         EzDefineDialog(lString0, "", "", 0x2ee8);
005BC6:0021:         lNumber8 = LAST_RESULT;
005BCE:0128:         lNumber8 = lNumber8 = -1;
005BE0:0022:         if (lNumber8 = 0) then
                         goto label286;
                     endif;
005BEE:012F:         return(-1);

label286: //Ref: 005BE0  
005BFB:0021:         lNumber7 = 0;

label287: //Ref: 006163  
005C0B:0128:         lNumber8 = lNumber7 = 0;
005C1D:0022:         if (lNumber8 = 0) then
                         goto label302;
                     endif;
005C2B:008C:         WaitOnDialog(lString0);
005C30:0021:         lNumber0 = LAST_RESULT;
005C3E:0128:         lNumber8 = lNumber0 = -100;
005C50:0022:         if (lNumber8 = 0) then
                         goto label291;
                     endif;
005C5E:0023:         StrCompare(pString1, "");
005C66:0128:         lNumber8 = LAST_RESULT != 0;
005C78:0022:         if (lNumber8 = 0) then
                         goto label289;
                     endif;
005C86:00B5:         function39(lString0, 0x2c6, pString1);

label289: //Ref: 005C78  
005C9D:0013:         lString2 = pString2;
005CA5:0091:         CtrlSetText(lString0, 0x12d, lString2);
005CB2:0098:         CtrlPGroups(lString0, 0x191);
005CBC:0095:         CtrlSetCurSel(lString0, 0x191, lString2);
005CC9:009A:         CmdGetHwndDlg(lString0);
005CCE:0021:         lNumber5 = LAST_RESULT;
005CD6:00B5:         function33(lString0, lNumber5, 64, string0);
005CEC:0023:         StrCompare(pString0, "");
005CF4:0128:         lNumber8 = LAST_RESULT != 0;
005D06:0022:         if (lNumber8 = 0) then
                         goto label290;
                     endif;
005D14:00B4:         USER.SetWindowText(lNumber5, pString0);

label290: //Ref: 005D06  
005D23:002C:         goto label301;

label291: //Ref: 005C50  
005D2C:0128:         lNumber8 = lNumber0 = 0x191;
005D3E:0022:         if (lNumber8 = 0) then
                         goto label292;
                     endif;
005D4C:0094:         CtrlGetCurSel(lString0, 0x191, lString2);
005D59:0091:         CtrlSetText(lString0, 0x12d, lString2);
005D66:002C:         goto label301;

label292: //Ref: 005D3E  
005D6F:0128:         lNumber8 = lNumber0 = 1;
005D81:0022:         if (lNumber8 = 0) then
                         goto label297;
                     endif;
005D8F:0092:         CtrlGetText(lString0, 0x12d, lString2);
005D9C:00B5:         function58(lString2);
005DA7:0023:         StrCompare(lString2, "");
005DAF:0128:         lNumber8 = LAST_RESULT = 0;
005DC1:0022:         if (lNumber8 = 0) then
                         goto label293;
                     endif;
005DCF:003A:         MessageBeep(0);
005DD6:00B4:         USER.GetDlgItem(lNumber5, 0x12d);
005DE3:0021:         lNumber6 = LAST_RESULT;
005DEB:00B4:         USER.SetFocus(lNumber6);
005DF3:002C:         goto label296;

label293: //Ref: 005DC1  
005DFC:0031:         StrFind(lString2, "/");
005E05:0128:         lNumber8 = LAST_RESULT >= 0;
005E17:0031:         StrFind(lString2, ":");
005E20:0128:         lNumber9 = LAST_RESULT >= 0;
005E32:0126:         lNumber8 = lNumber8 || lNumber9;
005E3D:0031:         StrFind(lString2, "*");
005E46:0128:         lNumber9 = LAST_RESULT >= 0;
005E58:0126:         lNumber8 = lNumber8 || lNumber9;
005E63:0031:         StrFind(lString2, "?");
005E6C:0128:         lNumber9 = LAST_RESULT >= 0;
005E7E:0126:         lNumber8 = lNumber8 || lNumber9;
005E89:0031:         StrFind(lString2, "\"");
005E92:0128:         lNumber9 = LAST_RESULT >= 0;
005EA4:0126:         lNumber8 = lNumber8 || lNumber9;
005EAF:0031:         StrFind(lString2, "<");
005EB8:0128:         lNumber9 = LAST_RESULT >= 0;
005ECA:0126:         lNumber8 = lNumber8 || lNumber9;
005ED5:0031:         StrFind(lString2, ">");
005EDE:0128:         lNumber9 = LAST_RESULT >= 0;
005EF0:0126:         lNumber8 = lNumber8 || lNumber9;
005EFB:0031:         StrFind(lString2, "|");
005F04:0128:         lNumber9 = LAST_RESULT >= 0;
005F16:00B5:         function63();
005F1E:0021:         lNumber10 = LAST_RESULT;
005F26:0127:         lNumber9 = lNumber9 && lNumber10;
005F31:0126:         lNumber8 = lNumber8 || lNumber9;
005F3C:0022:         if (lNumber8 = 0) then
                         goto label295;
                     endif;
005F4A:003A:         MessageBeep(0);
005F51:00B4:         KERNEL.GetModuleHandle(ISRES);
005F59:0021:         lNumber4 = LAST_RESULT;
005F61:0022:         if (lNumber4 = 0) then
                         goto label294;
                     endif;
005F6F:00B4:         USER.LoadString(lNumber4, 0x2d71, lString4, 0x100);
005F84:00B4:         USER.LoadString(lNumber4, 0x2d70, lString3, 0x100);

label294: //Ref: 005F61  
005F9D:003B:         SetDialogTitle(3, lString4);
005FA7:0124:         lString5 = lString3 + "\n\n\x09            ";
005FC1:0124:         lString5 = lString5 + "/ : * ? \" < > |";
005FDB:002A:         MessageBox(lString5, -65533);
005FE5:003B:         SetDialogTitle(3, "Severe");
005FF5:00B4:         USER.GetDlgItem(lNumber5, 0x12d);
006002:0021:         lNumber6 = LAST_RESULT;
00600A:00B4:         USER.SetFocus(lNumber6);
006012:002C:         goto label296;

label295: //Ref: 005F3C  
00601B:0013:         pString2 = lString2;
006023:0021:         lNumber0 = 1;
00602D:0021:         lNumber7 = 1;

label296: //Ref: 005DF3  006012  
00603B:002C:         goto label301;

label297: //Ref: 005D81  
006044:0128:         lNumber8 = lNumber0 = 12;
006056:0022:         if (lNumber8 = 0) then
                         goto label298;
                     endif;
006064:0021:         lNumber0 = 12;
00606E:0021:         lNumber7 = 1;
006078:002C:         goto label301;

label298: //Ref: 006056  
006081:0128:         lNumber8 = lNumber0 = -1;
006093:0022:         if (lNumber8 = 0) then
                         goto label299;
                     endif;
0060A1:00B5:         function36(-1, "SdSelectFolder");
0060BF:0021:         lNumber0 = -1;
0060C9:0021:         lNumber7 = 1;
0060D3:002C:         goto label301;

label299: //Ref: 006093  
0060DC:0128:         lNumber8 = lNumber0 = -200;
0060EE:0022:         if (lNumber8 = 0) then
                         goto label300;
                     endif;
0060FC:00B5:         function37(lNumber5, lNumber0, lNumber7);
00610D:002C:         goto label301;

label300: //Ref: 0060EE  
006116:00B5:         function31(lNumber0);
006121:0021:         lNumber8 = LAST_RESULT;
006129:00B5:         function32(lNumber0);
006134:0021:         lNumber9 = LAST_RESULT;
00613C:0127:         lNumber8 = lNumber8 && lNumber9;
006147:0022:         if (lNumber8 = 0) then
                         goto label301;
                     endif;
006155:0021:         lNumber7 = 1;

label301: //Ref: 005D23  005D66  00603B  006078  0060D3  00610D  006147  
006163:002C:         goto label287;

label302: //Ref: 005C1D  
00616C:008D:         EndDialog(lString0);
006171:008E:         ReleaseDialog(lString0);
006176:00B5:         function35();
00617E:00B5:         function43(string1, lString0, pString0, number17);
006192:015E:         SilentWriteData(string1, "szFolder", 1, pString2, 0);
0061AF:015E:         SilentWriteData(string1, "Result", 2, "", lNumber0);
0061C8:012F:         return(lNumber0);
0061CF:00B8:         return;
    end;

    // ------------- FUNCTION function26 --------------
    function function26(pString0)
    begin
00CBDA:0013:         string0 = pString0;
00CBE2:00B8:         return;
00CBE4:00B8:         return;
    end;

    // ------------- FUNCTION function27 --------------
    function function27(pString0, pString1, pString2, pString3)
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        number lNumber5;
        number lNumber6;
        number lNumber7;
        number lNumber8;
        string lString0;
        string lString1;
        string lString2;
    begin
00CC04:0013:         lString0 = "SdLicense";
00CC15:0021:         number1 = 0x2efd;
00CC1F:0128:         lNumber6 = MODE = 2;
00CC31:0022:         if (lNumber6 = 0) then
                         goto label698;
                     endif;
00CC3F:00B5:         function43(string1, lString0, pString0, number29);
00CC53:015D:         SilentReadData(string1, "Result", 2, lString1, lNumber0);
00CC6C:012F:         return(lNumber0);

label698: //Ref: 00CC31  
00CC77:0125:         lString2 = SUPPORTDIR ^ pString3;
00CC82:007A:         GetByte(lNumber2, pString3, 0);
00CC8F:007A:         GetByte(lNumber3, pString3, 1);
00CCA2:0128:         lNumber6 = lNumber3 = 58;
00CCB4:0022:         if (lNumber6 = 0) then
                         goto label701;
                     endif;
00CCC2:0128:         lNumber6 = lNumber2 >= 97;
00CCD4:0128:         lNumber7 = lNumber2 <= 122;
00CCE6:0127:         lNumber6 = lNumber6 && lNumber7;
00CCF1:0128:         lNumber7 = lNumber2 >= 65;
00CD03:0128:         lNumber8 = lNumber2 <= 90;
00CD15:0127:         lNumber7 = lNumber7 && lNumber8;
00CD20:0126:         lNumber6 = lNumber6 || lNumber7;
00CD2B:0022:         if (lNumber6 = 0) then
                         goto label700;
                     endif;
00CD39:0013:         lString2 = pString3;

label700: //Ref: 00CD2B  
00CD45:002C:         goto label702;

label701: //Ref: 00CCB4  
00CD4E:0128:         lNumber6 = lNumber3 = 92;
00CD60:0022:         if (lNumber6 = 0) then
                         goto label702;
                     endif;
00CD6E:0128:         lNumber6 = lNumber2 = 92;
00CD80:0022:         if (lNumber6 = 0) then
                         goto label702;
                     endif;
00CD8E:0013:         lString2 = pString3;

label702: //Ref: 00CD45  00CD60  00CD80  
00CD9A:0128:         lNumber6 = number2 = 0;
00CDAC:0022:         if (lNumber6 = 0) then
                         goto label703;
                     endif;
00CDBA:00B5:         function34();

label703: //Ref: 00CDAC  
00CDC6:0113:         EzDefineDialog(lString0, "", "", 0x2efd);
00CDD6:0021:         lNumber6 = LAST_RESULT;
00CDDE:0128:         lNumber6 = lNumber6 = -1;
00CDF0:0022:         if (lNumber6 = 0) then
                         goto label704;
                     endif;
00CDFE:012F:         return(-1);

label704: //Ref: 00CDF0  
00CE0B:0021:         lNumber5 = 0;

label705: //Ref: 00D12F  
00CE1B:0128:         lNumber6 = lNumber5 = 0;
00CE2D:0022:         if (lNumber6 = 0) then
                         goto label718;
                     endif;
00CE3B:008C:         WaitOnDialog(lString0);
00CE40:0021:         lNumber0 = LAST_RESULT;
00CE4E:0128:         lNumber6 = lNumber0 = -100;
00CE60:0022:         if (lNumber6 = 0) then
                         goto label711;
                     endif;
00CE6E:0023:         StrCompare(pString1, "");
00CE76:0128:         lNumber6 = LAST_RESULT != 0;
00CE88:0022:         if (lNumber6 = 0) then
                         goto label707;
                     endif;
00CE96:00B5:         function39(lString0, 0x2c7, pString1);

label707: //Ref: 00CE88  
00CEAD:0023:         StrCompare(pString2, "");
00CEB5:0128:         lNumber6 = LAST_RESULT != 0;
00CEC7:0022:         if (lNumber6 = 0) then
                         goto label708;
                     endif;
00CED5:00B5:         function39(lString0, 0x2c8, pString2);

label708: //Ref: 00CEC7  
00CEEC:009A:         CmdGetHwndDlg(lString0);
00CEF1:0021:         lNumber4 = LAST_RESULT;
00CEF9:00B5:         function33(lString0, lNumber4, 0, string0);
00CF0F:0023:         StrCompare(pString0, "");
00CF17:0128:         lNumber6 = LAST_RESULT != 0;
00CF29:0022:         if (lNumber6 = 0) then
                         goto label709;
                     endif;
00CF37:00B4:         USER.SetWindowText(lNumber4, pString0);

label709: //Ref: 00CF29  
00CF46:009F:         ListCreate(0);
00CF4D:0021:         lNumber1 = LAST_RESULT;
00CF55:0116:         ListReadFromFile(lNumber1, lString2);
00CF5D:0021:         lNumber6 = LAST_RESULT;
00CF65:0128:         lNumber6 = lNumber6 = 0;
00CF77:0022:         if (lNumber6 = 0) then
                         goto label710;
                     endif;
00CF85:00F1:         CtrlSetMLEText(lString0, 0x12d, lNumber1);

label710: //Ref: 00CF77  
00CF96:00A0:         ListDestroy(lNumber1);
00CF9B:002C:         goto label717;

label711: //Ref: 00CE60  
00CFA4:0128:         lNumber6 = lNumber0 = 1;
00CFB6:0022:         if (lNumber6 = 0) then
                         goto label712;
                     endif;
00CFC4:0021:         lNumber0 = 1;
00CFCE:0021:         lNumber5 = 1;
00CFD8:002C:         goto label717;

label712: //Ref: 00CFB6  
00CFE1:0128:         lNumber6 = lNumber0 = 6;
00CFF3:0022:         if (lNumber6 = 0) then
                         goto label713;
                     endif;
00D001:0021:         lNumber0 = 1;
00D00B:0021:         lNumber5 = 1;
00D015:002C:         goto label717;

label713: //Ref: 00CFF3  
00D01E:0128:         lNumber6 = lNumber0 = 12;
00D030:0022:         if (lNumber6 = 0) then
                         goto label714;
                     endif;
00D03E:0021:         lNumber0 = 12;
00D048:0021:         lNumber5 = 1;
00D052:002C:         goto label717;

label714: //Ref: 00D030  
00D05B:0128:         lNumber6 = lNumber0 = -1;
00D06D:0022:         if (lNumber6 = 0) then
                         goto label715;
                     endif;
00D07B:00B5:         function36(-1, lString0);
00D08B:0021:         lNumber0 = -1;
00D095:0021:         lNumber5 = 1;
00D09F:002C:         goto label717;

label715: //Ref: 00D06D  
00D0A8:0128:         lNumber6 = lNumber0 = -200;
00D0BA:0022:         if (lNumber6 = 0) then
                         goto label716;
                     endif;
00D0C8:00B5:         function37(lNumber4, lNumber0, lNumber5);
00D0D9:002C:         goto label717;

label716: //Ref: 00D0BA  
00D0E2:00B5:         function31(lNumber0);
00D0ED:0021:         lNumber6 = LAST_RESULT;
00D0F5:00B5:         function32(lNumber0);
00D100:0021:         lNumber7 = LAST_RESULT;
00D108:0127:         lNumber6 = lNumber6 && lNumber7;
00D113:0022:         if (lNumber6 = 0) then
                         goto label717;
                     endif;
00D121:0021:         lNumber5 = 1;

label717: //Ref: 00CF9B  00CFD8  00D015  00D052  00D09F  00D0D9  00D113  
00D12F:002C:         goto label705;

label718: //Ref: 00CE2D  
00D138:008D:         EndDialog(lString0);
00D13D:008E:         ReleaseDialog(lString0);
00D142:00B5:         function35();
00D14A:00B5:         function43(string1, lString0, pString0, number29);
00D15E:015E:         SilentWriteData(string1, "Result", 2, "", lNumber0);
00D177:012F:         return(lNumber0);
00D17E:00B8:         return;
    end;

    // ------------- FUNCTION function29 --------------
    function function29(pString0, pString1, pNumber0, pString2, pNumber1)
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        number lNumber5;
        number lNumber6;
        number lNumber7;
        number lNumber8;
        number lNumber9;
        number lNumber10;
        string lString0;
        string lString1;
    begin
00D5BA:0013:         lString0 = "SdFinishReboot";
00D5D0:0021:         number1 = 0x2eff;
00D5DA:0021:         lNumber7 = 0;
00D5E4:0061:         GetSystemInfo(150, lNumber3, lString1);
00D5F1:0128:         lNumber9 = lNumber3 = 4;
00D603:0128:         lNumber10 = lNumber3 = 0;
00D615:0126:         lNumber9 = lNumber9 || lNumber10;
00D620:0022:         if (lNumber9 = 0) then
                         goto label737;
                     endif;
00D62E:0021:         lNumber7 = 1;

label737: //Ref: 00D620  
00D63C:0128:         lNumber9 = MODE = 2;
00D64E:0022:         if (lNumber9 = 0) then
                         goto label741;
                     endif;
00D65C:00B5:         function43(string1, lString0, pString0, number31);
00D670:015D:         SilentReadData(string1, "Result", 2, lString1, lNumber0);
00D689:0128:         lNumber9 = lNumber0 != 12;
00D69B:0128:         lNumber10 = lNumber0 != 2;
00D6AD:0127:         lNumber9 = lNumber9 && lNumber10;
00D6B8:0022:         if (lNumber9 = 0) then
                         goto label740;
                     endif;
00D6C6:015D:         SilentReadData(string1, "BootOption", 2, lString1, lNumber4);
00D6E3:014F:         CommitSharedFiles(0);
00D6EA:0128:         lNumber9 = lNumber0 = -1;
00D6FC:0022:         if (lNumber9 = 0) then
                         goto label738;
                     endif;
00D70A:012F:         return(-1);

label738: //Ref: 00D6FC  
00D717:0022:         if (lNumber4 = 0) then
                         goto label740;
                     endif;
00D725:006F:         System(lNumber4);
00D72A:0021:         lNumber0 = LAST_RESULT;
00D732:0128:         lNumber9 = lNumber0 < 0;
00D744:0022:         if (lNumber9 = 0) then
                         goto label739;
                     endif;
00D752:012F:         return(lNumber0);

label739: //Ref: 00D744  
00D75D:000A:         Delay(1);
00D764:0021:         lNumber0 = -1;

label740: //Ref: 00D6B8  00D717  
00D772:012F:         return(lNumber0);

label741: //Ref: 00D64E  
00D77D:0128:         lNumber9 = number2 = 0;
00D78F:0022:         if (lNumber9 = 0) then
                         goto label742;
                     endif;
00D79D:00B5:         function34();

label742: //Ref: 00D78F  
00D7A9:0113:         EzDefineDialog(lString0, "", "", 0x2eff);
00D7B9:0021:         lNumber9 = LAST_RESULT;
00D7C1:0128:         lNumber9 = lNumber9 = -1;
00D7D3:0022:         if (lNumber9 = 0) then
                         goto label743;
                     endif;
00D7E1:012F:         return(-1);

label743: //Ref: 00D7D3  
00D7EE:0002:         Disable(50);
00D7F5:0021:         lNumber8 = 0;

label744: //Ref: 00DD5E  
00D805:0128:         lNumber9 = lNumber8 = 0;
00D817:0022:         if (lNumber9 = 0) then
                         goto label765;
                     endif;
00D825:008C:         WaitOnDialog(lString0);
00D82A:0021:         lNumber0 = LAST_RESULT;
00D838:0128:         lNumber9 = lNumber0 = -100;
00D84A:0022:         if (lNumber9 = 0) then
                         goto label755;
                     endif;
00D858:0023:         StrCompare(pString1, "");
00D860:0128:         lNumber9 = LAST_RESULT != 0;
00D872:0022:         if (lNumber9 = 0) then
                         goto label746;
                     endif;
00D880:00B5:         function39(lString0, 0x2c7, pString1);

label746: //Ref: 00D872  
00D897:0023:         StrCompare(pString2, "");
00D89F:0128:         lNumber9 = LAST_RESULT != 0;
00D8B1:0022:         if (lNumber9 = 0) then
                         goto label747;
                     endif;
00D8BF:00B5:         function39(lString0, 0x2c8, pString2);

label747: //Ref: 00D8B1  
00D8D6:009A:         CmdGetHwndDlg(lString0);
00D8DB:0021:         lNumber6 = LAST_RESULT;
00D8E3:00B5:         function33(lString0, lNumber6, 0, string0);
00D8F9:0023:         StrCompare(pString0, "");
00D901:0128:         lNumber9 = LAST_RESULT != 0;
00D913:0022:         if (lNumber9 = 0) then
                         goto label748;
                     endif;
00D921:00B4:         USER.SetWindowText(lNumber6, pString0);

label748: //Ref: 00D913  
00D930:00B5:         function57(lString0, lNumber6, lNumber7);
00D941:0090:         CtrlSetState(lString0, 0x1f5, 0);
00D950:0090:         CtrlSetState(lString0, 0x1f6, 0);
00D95F:0090:         CtrlSetState(lString0, 0x1f7, 0);
00D974:0128:         lNumber9 = pNumber0 = 3;
00D986:0022:         if (lNumber9 = 0) then
                         goto label750;
                     endif;
00D994:0090:         CtrlSetState(lString0, 0x1f6, -1001);
00D9A3:00B4:         USER.GetDlgItem(lNumber6, 0x1f6);
00D9B0:0021:         lNumber5 = LAST_RESULT;
00D9B8:002C:         goto label754;

label750: //Ref: 00D986  
00D9C1:0128:         lNumber9 = pNumber0 = 2;
00D9D3:0022:         if (lNumber9 = 0) then
                         goto label753;
                     endif;
00D9E1:0022:         if (lNumber7 = 0) then
                         goto label751;
                     endif;
00D9EF:0090:         CtrlSetState(lString0, 0x1f5, -1001);
00D9FE:00B4:         USER.GetDlgItem(lNumber6, 0x1f5);
00DA0B:0021:         lNumber5 = LAST_RESULT;
00DA13:002C:         goto label752;

label751: //Ref: 00D9E1  
00DA1C:0090:         CtrlSetState(lString0, 0x1f6, -1001);
00DA2B:00B4:         USER.GetDlgItem(lNumber6, 0x1f6);
00DA38:0021:         lNumber5 = LAST_RESULT;

label752: //Ref: 00DA13  
00DA44:002C:         goto label754;

label753: //Ref: 00D9D3  
00DA4D:0090:         CtrlSetState(lString0, 0x1f7, -1001);
00DA5C:00B4:         USER.GetDlgItem(lNumber6, 0x1f7);
00DA69:0021:         lNumber5 = LAST_RESULT;

label754: //Ref: 00D9B8  00DA44  
00DA75:00B4:         USER.SetFocus(lNumber5);
00DA7D:002C:         goto label764;

label755: //Ref: 00D84A  
00DA86:0128:         lNumber9 = lNumber0 = 1;
00DA98:0022:         if (lNumber9 = 0) then
                         goto label760;
                     endif;
00DAA6:0021:         lNumber0 = 1;
00DAB0:0021:         lNumber8 = 1;
00DABA:0021:         lNumber4 = 0;
00DAC4:008F:         CtrlGetState(lString0, 0x1f5);
00DACE:0021:         lNumber9 = LAST_RESULT;
00DAD6:0128:         lNumber9 = lNumber9 = -1001;
00DAE8:0022:         if (lNumber9 = 0) then
                         goto label756;
                     endif;
00DAF6:0021:         lNumber4 = 2;

label756: //Ref: 00DAE8  
00DB04:008F:         CtrlGetState(lString0, 0x1f6);
00DB0E:0021:         lNumber9 = LAST_RESULT;
00DB16:0128:         lNumber9 = lNumber9 = -1001;
00DB28:0022:         if (lNumber9 = 0) then
                         goto label757;
                     endif;
00DB36:0021:         lNumber4 = 3;

label757: //Ref: 00DB28  
00DB44:014F:         CommitSharedFiles(0);
00DB4B:0022:         if (lNumber4 = 0) then
                         goto label759;
                     endif;
00DB59:0021:         lNumber8 = 0;
00DB63:00B5:         function43(string1, lString0, pString0, number31);
00DB77:015E:         SilentWriteData(string1, "Result", 2, "", lNumber0);
00DB90:015E:         SilentWriteData(string1, "BootOption", 2, "", lNumber4);
00DBAD:006F:         System(lNumber4);
00DBB2:0021:         lNumber0 = LAST_RESULT;
00DBBA:0128:         lNumber9 = lNumber0 = 0;
00DBCC:0128:         lNumber10 = lNumber3 = 2;
00DBDE:0127:         lNumber9 = lNumber9 && lNumber10;
00DBE9:0022:         if (lNumber9 = 0) then
                         goto label758;
                     endif;
00DBF7:000A:         Delay(3);
00DBFE:0021:         lNumber0 = -1;
00DC08:002C:         goto label759;

label758: //Ref: 00DBE9  
00DC11:0128:         lNumber9 = lNumber0 < 0;
00DC23:0022:         if (lNumber9 = 0) then
                         goto label759;
                     endif;
00DC31:015E:         SilentWriteData(string1, "Result", 2, "", lNumber0);

label759: //Ref: 00DB4B  00DC08  00DC23  
00DC4E:002C:         goto label764;

label760: //Ref: 00DA98  
00DC57:0128:         lNumber9 = lNumber0 = 12;
00DC69:0022:         if (lNumber9 = 0) then
                         goto label761;
                     endif;
00DC77:0021:         lNumber0 = 12;
00DC81:002C:         goto label764;

label761: //Ref: 00DC69  
00DC8A:0128:         lNumber9 = lNumber0 = -1;
00DC9C:0022:         if (lNumber9 = 0) then
                         goto label762;
                     endif;
00DCAA:00B5:         function36(-1, lString0);
00DCBA:0021:         lNumber0 = -1;
00DCC4:0021:         lNumber8 = 1;
00DCCE:002C:         goto label764;

label762: //Ref: 00DC9C  
00DCD7:0128:         lNumber9 = lNumber0 = -200;
00DCE9:0022:         if (lNumber9 = 0) then
                         goto label763;
                     endif;
00DCF7:00B5:         function37(lNumber6, lNumber0, lNumber8);
00DD08:002C:         goto label764;

label763: //Ref: 00DCE9  
00DD11:00B5:         function31(lNumber0);
00DD1C:0021:         lNumber9 = LAST_RESULT;
00DD24:00B5:         function32(lNumber0);
00DD2F:0021:         lNumber10 = LAST_RESULT;
00DD37:0127:         lNumber9 = lNumber9 && lNumber10;
00DD42:0022:         if (lNumber9 = 0) then
                         goto label764;
                     endif;
00DD50:0021:         lNumber8 = 1;

label764: //Ref: 00DA7D  00DC4E  00DC81  00DCCE  00DD08  00DD42  
00DD5E:002C:         goto label744;

label765: //Ref: 00D817  
00DD67:008D:         EndDialog(lString0);
00DD6C:008E:         ReleaseDialog(lString0);
00DD71:00B5:         function35();
00DD79:0001:         Enable(50);
00DD80:00B5:         function43(string1, lString0, pString0, number31);
00DD94:015E:         SilentWriteData(string1, "Result", 2, "", lNumber0);
00DDAD:015E:         SilentWriteData(string1, "BootOption", 2, "", 0);
00DDCC:012F:         return(lNumber0);
00DDD3:00B8:         return;
    end;

    // ------------- FUNCTION function30 --------------
    function function30(pString0, pString1, pString2, pString3, pString4, pNumber0, pNumber1)
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        number lNumber5;
        number lNumber6;
        number lNumber7;
        number lNumber8;
        string lString0;
        string lString1;
    begin
00DE58:0013:         lString0 = "SdFinish";
00DE68:0021:         number1 = 0x2f00;
00DE72:0021:         lNumber2 = 0;
00DE7C:0128:         lNumber7 = MODE = 2;
00DE8E:0022:         if (lNumber7 = 0) then
                         goto label771;
                     endif;
00DE9C:00B5:         function43(string1, lString0, pString0, number32);
00DEB0:015D:         SilentReadData(string1, "Result", 2, lString1, lNumber0);
00DEC9:0128:         lNumber7 = lNumber0 != 12;
00DEDB:0128:         lNumber8 = lNumber0 != 2;
00DEED:0127:         lNumber7 = lNumber7 && lNumber8;
00DEF8:0022:         if (lNumber7 = 0) then
                         goto label770;
                     endif;
00DF06:015D:         SilentReadData(string1, "bOpt1", 2, lString1, pNumber0);
00DF1E:015D:         SilentReadData(string1, "bOpt2", 2, lString1, pNumber1);

label770: //Ref: 00DEF8  
00DF3A:012F:         return(lNumber0);

label771: //Ref: 00DE8E  
00DF45:0128:         lNumber7 = number2 = 0;
00DF57:0022:         if (lNumber7 = 0) then
                         goto label772;
                     endif;
00DF65:00B5:         function34();

label772: //Ref: 00DF57  
00DF71:0113:         EzDefineDialog(lString0, "", "", 0x2f00);
00DF81:0021:         lNumber7 = LAST_RESULT;
00DF89:0128:         lNumber7 = lNumber7 = -1;
00DF9B:0022:         if (lNumber7 = 0) then
                         goto label773;
                     endif;
00DFA9:012F:         return(-1);

label773: //Ref: 00DF9B  
00DFB6:0002:         Disable(50);
00DFBD:0021:         lNumber3 = 0;

label774: //Ref: 00E489  
00DFCD:0128:         lNumber7 = lNumber3 = 0;
00DFDF:0022:         if (lNumber7 = 0) then
                         goto label795;
                     endif;
00DFED:008C:         WaitOnDialog(lString0);
00DFF2:0021:         lNumber0 = LAST_RESULT;
00E000:0128:         lNumber7 = lNumber0 = -100;
00E012:0022:         if (lNumber7 = 0) then
                         goto label787;
                     endif;
00E020:009A:         CmdGetHwndDlg(lString0);
00E025:0021:         lNumber4 = LAST_RESULT;
00E02D:0023:         StrCompare(pString1, "");
00E035:0128:         lNumber7 = LAST_RESULT != 0;
00E047:0022:         if (lNumber7 = 0) then
                         goto label776;
                     endif;
00E055:00B5:         function39(lString0, 0x2c7, pString1);

label776: //Ref: 00E047  
00E06C:0023:         StrCompare(pString2, "");
00E074:0128:         lNumber7 = LAST_RESULT != 0;
00E086:0022:         if (lNumber7 = 0) then
                         goto label777;
                     endif;
00E094:00B5:         function39(lString0, 0x2c8, pString2);

label777: //Ref: 00E086  
00E0AB:0023:         StrCompare(pString3, "");
00E0B3:0128:         lNumber7 = LAST_RESULT != 0;
00E0C5:0022:         if (lNumber7 = 0) then
                         goto label778;
                     endif;
00E0D3:0091:         CtrlSetText(lString0, 0x1f5, pString3);
00E0E0:002C:         goto label779;

label778: //Ref: 00E0C5  
00E0E9:00B4:         USER.GetDlgItem(lNumber4, 0x1f5);
00E0F6:0021:         lNumber5 = LAST_RESULT;
00E0FE:00B4:         USER.ShowWindow(lNumber5, 0);
00E10B:0021:         pNumber0 = 0;

label779: //Ref: 00E0E0  
00E119:0023:         StrCompare(pString4, "");
00E121:0128:         lNumber7 = LAST_RESULT != 0;
00E133:0022:         if (lNumber7 = 0) then
                         goto label780;
                     endif;
00E141:0091:         CtrlSetText(lString0, 0x1f6, pString4);
00E14E:002C:         goto label781;

label780: //Ref: 00E133  
00E157:00B4:         USER.GetDlgItem(lNumber4, 0x1f6);
00E164:0021:         lNumber5 = LAST_RESULT;
00E16C:00B4:         USER.ShowWindow(lNumber5, 0);
00E179:0021:         pNumber1 = 0;

label781: //Ref: 00E14E  
00E187:00B5:         function33(lString0, lNumber4, 0, string0);
00E19D:0023:         StrCompare(pString0, "");
00E1A5:0128:         lNumber7 = LAST_RESULT != 0;
00E1B7:0022:         if (lNumber7 = 0) then
                         goto label782;
                     endif;
00E1C5:00B4:         USER.SetWindowText(lNumber4, pString0);

label782: //Ref: 00E1B7  
00E1D4:0022:         if (pNumber0 = 0) then
                         goto label783;
                     endif;
00E1E2:0090:         CtrlSetState(lString0, 0x1f5, -1001);

label783: //Ref: 00E1D4  
00E1F5:0022:         if (pNumber1 = 0) then
                         goto label784;
                     endif;
00E203:0090:         CtrlSetState(lString0, 0x1f6, -1001);

label784: //Ref: 00E1F5  
00E216:0023:         StrCompare(pString3, "");
00E21E:0128:         lNumber7 = LAST_RESULT = 0;
00E230:0023:         StrCompare(pString4, "");
00E238:0128:         lNumber8 = LAST_RESULT = 0;
00E24A:0127:         lNumber7 = lNumber7 && lNumber8;
00E255:0022:         if (lNumber7 = 0) then
                         goto label785;
                     endif;
00E263:00B4:         USER.GetDlgItem(lNumber4, 1);
00E270:0021:         lNumber6 = LAST_RESULT;
00E278:00B4:         USER.SetFocus(lNumber6);
00E280:002C:         goto label786;

label785: //Ref: 00E255  
00E289:00B5:         function41(lString0, lNumber4, string0, 0x1f5, 2);

label786: //Ref: 00E280  
00E2A8:002C:         goto label794;

label787: //Ref: 00E012  
00E2B1:0128:         lNumber7 = lNumber0 = 1;
00E2C3:0022:         if (lNumber7 = 0) then
                         goto label790;
                     endif;
00E2D1:0021:         lNumber0 = 1;
00E2DB:0021:         lNumber3 = 1;
00E2E5:0021:         pNumber0 = 0;
00E2EF:0021:         pNumber1 = 0;
00E2F9:008F:         CtrlGetState(lString0, 0x1f5);
00E303:0021:         lNumber7 = LAST_RESULT;
00E30B:0128:         lNumber7 = lNumber7 = -1001;
00E31D:0022:         if (lNumber7 = 0) then
                         goto label788;
                     endif;
00E32B:0021:         pNumber0 = 1;

label788: //Ref: 00E31D  
00E339:008F:         CtrlGetState(lString0, 0x1f6);
00E343:0021:         lNumber7 = LAST_RESULT;
00E34B:0128:         lNumber7 = lNumber7 = -1001;
00E35D:0022:         if (lNumber7 = 0) then
                         goto label789;
                     endif;
00E36B:0021:         pNumber1 = 1;

label789: //Ref: 00E35D  
00E379:002C:         goto label794;

label790: //Ref: 00E2C3  
00E382:0128:         lNumber7 = lNumber0 = 12;
00E394:0022:         if (lNumber7 = 0) then
                         goto label791;
                     endif;
00E3A2:0021:         lNumber0 = 12;
00E3AC:002C:         goto label794;

label791: //Ref: 00E394  
00E3B5:0128:         lNumber7 = lNumber0 = -1;
00E3C7:0022:         if (lNumber7 = 0) then
                         goto label792;
                     endif;
00E3D5:00B5:         function36(-1, lString0);
00E3E5:0021:         lNumber0 = -1;
00E3EF:0021:         lNumber3 = 1;
00E3F9:002C:         goto label794;

label792: //Ref: 00E3C7  
00E402:0128:         lNumber7 = lNumber0 = -200;
00E414:0022:         if (lNumber7 = 0) then
                         goto label793;
                     endif;
00E422:00B5:         function37(lNumber4, lNumber0, lNumber3);
00E433:002C:         goto label794;

label793: //Ref: 00E414  
00E43C:00B5:         function31(lNumber0);
00E447:0021:         lNumber7 = LAST_RESULT;
00E44F:00B5:         function32(lNumber0);
00E45A:0021:         lNumber8 = LAST_RESULT;
00E462:0127:         lNumber7 = lNumber7 && lNumber8;
00E46D:0022:         if (lNumber7 = 0) then
                         goto label794;
                     endif;
00E47B:0021:         lNumber3 = 1;

label794: //Ref: 00E2A8  00E379  00E3AC  00E3F9  00E433  00E46D  
00E489:002C:         goto label774;

label795: //Ref: 00DFDF  
00E492:008D:         EndDialog(lString0);
00E497:008E:         ReleaseDialog(lString0);
00E49C:00B5:         function35();
00E4A4:0001:         Enable(50);
00E4AB:00B5:         function43(string1, lString0, pString0, number32);
00E4BF:015E:         SilentWriteData(string1, "Result", 2, "", lNumber0);
00E4D8:015E:         SilentWriteData(string1, "bOpt1", 2, "", pNumber0);
00E4F0:015E:         SilentWriteData(string1, "bOpt2", 2, "", pNumber1);
00E508:012F:         return(lNumber0);
00E50F:00B8:         return;
    end;

    // ------------- FUNCTION function31 --------------
    function function31(pNumber0)
        number lNumber0;
        number lNumber1;
    begin
002450:0128:         lNumber0 = pNumber0 >= 1;
002462:0128:         lNumber1 = pNumber0 <= 12;
002474:0127:         lNumber0 = lNumber0 && lNumber1;
00247F:0022:         if (lNumber0 = 0) then
                         goto label76;
                     endif;
00248D:012F:         return(1);

label76: //Ref: 00247F  
00249A:012F:         return(0);
0024A3:00B8:         return;
    end;

    // ------------- FUNCTION function32 --------------
    function function32(pNumber0)
        number lNumber0;
    begin
0024BB:0128:         lNumber0 = pNumber0 = 2;
0024CD:0022:         if (lNumber0 = 0) then
                         goto label79;
                     endif;
0024DB:0154:         Do(2);
0024E2:002C:         goto label82;

label79: //Ref: 0024CD  
0024EB:0128:         lNumber0 = pNumber0 = 9;
0024FD:0022:         if (lNumber0 = 0) then
                         goto label80;
                     endif;
00250B:0154:         Do(2);
002512:002C:         goto label82;

label80: //Ref: 0024FD  
00251B:0128:         lNumber0 = pNumber0 = 8;
00252D:0022:         if (lNumber0 = 0) then
                         goto label81;
                     endif;
00253B:0154:         Do(1);
002542:002C:         goto label82;

label81: //Ref: 00252D  
00254B:012F:         return(1);

label82: //Ref: 0024E2  002512  002542  
002558:012F:         return(0);
002561:00B8:         return;
    end;

    // ------------- FUNCTION function33 --------------
    function function33(pString0, pNumber0, pNumber1, pString1)
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        number lNumber5;
        number lNumber6;
        number lNumber7;
        string lString0;
    begin
002313:00B5:         function42(pNumber0);
00231E:00B4:         USER.GetFocus();
002323:0021:         lNumber1 = LAST_RESULT;
00232B:00BA:         AddressString(lString0);
002330:0021:         lNumber6 = LAST_RESULT;
002338:00B4:         USER.IsWindow(lNumber1);
002340:0021:         lNumber7 = LAST_RESULT;
002348:0022:         if (lNumber7 = 0) then
                         goto label73;
                     endif;
002356:00B4:         USER.GetClassName(lNumber1, lNumber6, 0x200);
002366:0023:         StrCompare(lString0, "edit");
002372:0128:         lNumber7 = LAST_RESULT = 0;
002384:0022:         if (lNumber7 = 0) then
                         goto label73;
                     endif;
002392:0128:         lNumber7 = number3 = 1;
0023A4:0022:         if (lNumber7 = 0) then
                         goto label71;
                     endif;
0023B2:00B4:         USER.GetWindowWord(lNumber1, -12);
0023BF:0021:         lNumber4 = LAST_RESULT;
0023C7:002C:         goto label72;

label71: //Ref: 0023A4  
0023D0:00B4:         USER.GetWindowLong(lNumber1, -12);
0023DD:0021:         lNumber4 = LAST_RESULT;

label72: //Ref: 0023C7  
0023E9:0093:         CtrlSelectText(pString0, lNumber4);

label73: //Ref: 002348  002384  
0023F5:0023:         StrCompare(pString1, "");
0023FD:0128:         lNumber7 = LAST_RESULT != 0;
00240F:0022:         if (lNumber7 = 0) then
                         goto label74;
                     endif;
00241D:00B5:         function41(pString0, pNumber0, string0, 0x2bc, 25);

label74: //Ref: 00240F  
00243C:00B8:         return;
00243E:00B8:         return;
    end;

    // ------------- FUNCTION function34 --------------
    function function34()
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        string lString0;
    begin
0021E9:0022:         if (number2 = 0) then
                         goto label65;
                     endif;
0021F7:012F:         return(1);

label65: //Ref: 0021E9  
002204:0061:         GetSystemInfo(211, lNumber0, lString0);
002211:0021:         number3 = 0;
00221B:0128:         lNumber3 = lNumber0 = 16;
00222D:0022:         if (lNumber3 = 0) then
                         goto label66;
                     endif;
00223B:0021:         number3 = 1;

label66: //Ref: 00222D  
002249:0021:         number2 = 1;
002253:00B4:         KERNEL.GetModuleHandle(ISRES);
00225B:0021:         lNumber1 = LAST_RESULT;
002263:0022:         if (lNumber1 = 0) then
                         goto label67;
                     endif;
002271:00B4:         USER.LoadString(lNumber1, 0x2d50, string2, 0x100);

label67: //Ref: 002263  
00228A:00C6:         GetWindowHandle(-2);
002291:0021:         lNumber2 = LAST_RESULT;
002299:0022:         if (lNumber2 = 0) then
                         goto label68;
                     endif;
0022A7:00B4:         USER.IsIconic(lNumber2);
0022AF:0021:         lNumber3 = LAST_RESULT;
0022B7:0022:         if (lNumber3 = 0) then
                         goto label68;
                     endif;
0022C5:00B4:         USER.ShowWindow(lNumber2, 9);

label68: //Ref: 002299  0022B7  
0022D6:015F:         DialogSetInfo(4, "", 4);
0022E5:00B8:         return;
0022E7:00B8:         return;
    end;

    // ------------- FUNCTION function35 --------------
    function function35()
    begin
0022F9:00B8:         return;
0022FB:00B8:         return;
    end;

    // ------------- FUNCTION function36 --------------
    function function36(pInt0, pString0)
        number lNumber0;
        string lString0;
    begin
002D80:0128:         lNumber0 = pInt0 = -1;
002D92:0022:         if (lNumber0 = 0) then
                         goto label114;
                     endif;
002DA0:0124:         lString0 = "In function \'%s\':\n" + "Unable to create dialog.\n";
002DD6:0124:         lString0 = lString0 + "Make sure the _ISRES.DLL is in _SYS.CAB.";
002E09:0104:         SprintfBox(-65533, "Error", lString0, pString0);

label114: //Ref: 002D92  
002E25:00B8:         return;
002E27:00B8:         return;
    end;

    // ------------- FUNCTION function37 --------------
    function function37(pInt0, pInt1, pBool0)
        number lNumber0;
    begin
002E39:00B4:         USER.GetDlgItem(pInt0, 9);
002E46:0021:         lNumber0 = LAST_RESULT;
002E4E:0022:         if (lNumber0 = 0) then
                         goto label116;
                     endif;
002E5C:0154:         Do(2);
002E63:002C:         goto label118;

label116: //Ref: 002E4E  
002E6C:00B4:         USER.GetDlgItem(pInt0, 2);
002E79:0021:         lNumber0 = LAST_RESULT;
002E81:0022:         if (lNumber0 = 0) then
                         goto label117;
                     endif;
002E8F:0021:         pInt1 = 2;
002E99:0021:         pBool0 = 1;
002EA3:002C:         goto label118;

label117: //Ref: 002E81  
002EAC:0021:         pInt1 = 2;
002EB6:0021:         pBool0 = 1;

label118: //Ref: 002E63  002EA3  
002EC4:00B8:         return;
002EC6:00B8:         return;
    end;

    // ------------- FUNCTION function38 --------------
    function function38(pString0, pString1, pString2, pBool0)
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        number lNumber5;
        number lNumber6;
        number lNumber7;
        string lString0;
        string lString1;
        string lString2;
        string lString3;
        string lString4;
        string lString5;
    begin
0029B0:0013:         lString1 = "Disk Space";
0029C2:0030:         StrSub(lString0, pString0, 0, 1);
0029D4:0021:         lNumber6 = 0;
0029DE:0125:         lString4 = pString0 ^ "temp.txt";
0029F1:00D9:         ParsePath(lString3, lString4, 1);
0029FE:0023:         StrCompare(lString3, pString0);
002A06:0128:         lNumber7 = LAST_RESULT != 0;
002A18:0022:         if (lNumber7 = 0) then
                         goto label100;
                     endif;
002A26:0021:         lNumber6 = 1;

label100: //Ref: 002A18  
002A34:0125:         lString4 = pString0 ^ "temp.txt";
002A47:00D9:         ParsePath(lString3, lString4, 2);
002A54:0022:         if (lNumber6 = 0) then
                         goto label101;
                     endif;
002A62:0153:         StrRemoveLastSlash(lString3);

label101: //Ref: 002A54  
002A6B:0113:         EzDefineDialog(lString1, "", "", 0x2ef7);
002A7B:0021:         lNumber7 = LAST_RESULT;
002A83:0128:         lNumber7 = lNumber7 = -1;
002A95:0022:         if (lNumber7 = 0) then
                         goto label102;
                     endif;
002AA3:012F:         return(-1);

label102: //Ref: 002A95  
002AB0:0021:         lNumber5 = 0;

label103: //Ref: 002D4F  
002AC0:0128:         lNumber7 = lNumber5 = 0;
002AD2:0022:         if (lNumber7 = 0) then
                         goto label111;
                     endif;
002AE0:008C:         WaitOnDialog(lString1);
002AE5:0021:         lNumber1 = LAST_RESULT;
002AF3:0128:         lNumber7 = lNumber1 = -100;
002B05:0022:         if (lNumber7 = 0) then
                         goto label105;
                     endif;
002B13:009A:         CmdGetHwndDlg(lString1);
002B18:0021:         lNumber4 = LAST_RESULT;
002B20:009F:         ListCreate(0);
002B27:0021:         lNumber3 = LAST_RESULT;
002B2F:00E1:         GetValidDrivesList(lNumber3, 7, 0);
002B3E:0099:         CtrlSetList(lString1, 0x259, lNumber3);
002B4B:00A0:         ListDestroy(lNumber3);
002B50:0095:         CtrlSetCurSel(lString1, 0x259, lString0);
002B5D:0091:         CtrlSetText(lString1, 0x2be, pString2);
002B6A:0124:         lString2 = lString0 + ":\\";
002B77:0005:         GetDiskSpace(lString2);
002B7C:0021:         lNumber7 = LAST_RESULT;
002B84:011C:         lNumber2 = lNumber7 / 0x400;
002B91:006E:         NumToStr(pString1, lNumber2);
002B99:0124:         pString1 = pString1 + " K";
002BA6:0091:         CtrlSetText(lString1, 0x2bd, pString1);
002BB3:00B5:         function33(lString1, lNumber4, 0, string0);
002BC9:002C:         goto label110;

label105: //Ref: 002B05  
002BD2:0128:         lNumber7 = lNumber1 = 0x259;
002BE4:0022:         if (lNumber7 = 0) then
                         goto label106;
                     endif;
002BF2:0094:         CtrlGetCurSel(lString1, 0x259, lString0);
002BFF:0124:         lString2 = lString0 + ":\\";
002C0C:0005:         GetDiskSpace(lString2);
002C11:0021:         lNumber7 = LAST_RESULT;
002C19:011C:         lNumber2 = lNumber7 / 0x400;
002C26:006E:         NumToStr(pString1, lNumber2);
002C2E:0124:         pString1 = pString1 + " K";
002C3B:0091:         CtrlSetText(lString1, 0x2bd, pString1);
002C48:002C:         goto label110;

label106: //Ref: 002BE4  
002C51:0128:         lNumber7 = lNumber1 = 1;
002C63:0022:         if (lNumber7 = 0) then
                         goto label108;
                     endif;
002C71:0031:         StrFind(pString0, lString0);
002C79:0021:         lNumber7 = LAST_RESULT;
002C81:0128:         lNumber7 = lNumber7 != 0;
002C93:0022:         if (lNumber7 = 0) then
                         goto label107;
                     endif;
002CA1:0125:         lString5 = ":\\" ^ lString3;
002CAE:0124:         pString0 = lString0 + lString5;

label107: //Ref: 002C93  
002CBD:0021:         lNumber5 = 1;
002CC7:0021:         pBool0 = 1;
002CD1:002C:         goto label110;

label108: //Ref: 002C63  
002CDA:0128:         lNumber7 = lNumber1 = 2;
002CEC:0022:         if (lNumber7 = 0) then
                         goto label109;
                     endif;
002CFA:0021:         lNumber5 = 1;
002D04:0021:         pBool0 = 0;
002D0E:002C:         goto label110;

label109: //Ref: 002CEC  
002D17:0128:         lNumber7 = lNumber1 = -200;
002D29:0022:         if (lNumber7 = 0) then
                         goto label110;
                     endif;
002D37:0021:         lNumber5 = 1;
002D41:0021:         pBool0 = 0;

label110: //Ref: 002BC9  002C48  002CD1  002D0E  002D29  
002D4F:002C:         goto label103;

label111: //Ref: 002AD2  
002D58:008D:         EndDialog(lString1);
002D5D:008E:         ReleaseDialog(lString1);
002D62:00B8:         return;
002D64:00B8:         return;
    end;

    // ------------- FUNCTION function39 --------------
    function function39(pString0, pInt0, pString1)
    begin
0027E3:0091:         CtrlSetText(pString0, pInt0, pString1);
0027EE:00B8:         return;
0027F0:00B8:         return;
    end;

    // ------------- FUNCTION function40 --------------
    function function40(pInt0, pString0, pInt1)
        number lNumber0;
        number lNumber1;
        string lString0;
        string lString1;
    begin
002EDE:00BB:         AddressStruct(lString1);
002EE3:0021:         lNumber1 = LAST_RESULT;
002EEB:00B4:         GDI.GetTextExtentPoint(pInt0, pString0, pInt1, lNumber1);
002EFC:00BD:         StructGetP(lNumber1, "_sdSIZE", "cx", lNumber0, lString0);
002F16:012F:         return(lNumber0);
002F1D:00B8:         return;
    end;

    // ------------- FUNCTION function41 --------------
    function function41(pString0, pNumber0, pString1, pNumber1, pNumber2)
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        number lNumber5;
        number lNumber6;
        string lString0;
        string lString1;
        string lString2;
    begin
00280C:0021:         lNumber1 = pNumber1;
002814:00B4:         USER.GetDlgItem(pNumber0, lNumber1);
00281F:0021:         lNumber0 = LAST_RESULT;
002827:0021:         lNumber3 = 0;

label94: //Ref: 002983  
002835:0128:         lNumber6 = lNumber3 <= pNumber2;
002845:0022:         if (lNumber6 = 0) then
                         goto label98;
                     endif;
002853:0022:         if (lNumber0 = 0) then
                         goto label97;
                     endif;
002861:0021:         lNumber5 = 0;
00286B:0092:         CtrlGetText(pString0, lNumber1, lString0);
002876:0031:         StrFind(lString0, "%P");
002880:0021:         lNumber4 = LAST_RESULT;
002888:002F:         StrLength(lString0);
00288D:0021:         lNumber2 = LAST_RESULT;

label95: //Ref: 002930  
00289B:0128:         lNumber6 = lNumber4 >= 0;
0028AD:0022:         if (lNumber6 = 0) then
                         goto label96;
                     endif;
0028BB:0021:         lNumber5 = 1;
0028C5:0030:         StrSub(lString1, lString0, 0, lNumber4);
0028D5:0124:         lString1 = lString1 + pString1;
0028E0:0119:         lNumber4 = lNumber4 + 2;
0028ED:011A:         lNumber2 = lNumber2 - lNumber4;
0028F8:0030:         StrSub(lString2, lString0, lNumber4, lNumber2);
002906:0124:         lString0 = lString1 + lString2;
002911:0031:         StrFind(lString0, "%P");
00291B:0021:         lNumber4 = LAST_RESULT;
002923:002F:         StrLength(lString0);
002928:0021:         lNumber2 = LAST_RESULT;
002930:002C:         goto label95;

label96: //Ref: 0028AD  
002939:0022:         if (lNumber5 = 0) then
                         goto label97;
                     endif;
002947:0091:         CtrlSetText(pString0, lNumber1, lString0);

label97: //Ref: 002853  002939  
002956:0119:         lNumber1 = lNumber1 + 1;
002963:00B4:         USER.GetDlgItem(pNumber0, lNumber1);
00296E:0021:         lNumber0 = LAST_RESULT;
002976:0119:         lNumber3 = lNumber3 + 1;
002983:002C:         goto label94;

label98: //Ref: 002845  
00298C:00B8:         return;
    end;

    // ------------- FUNCTION function42 --------------
    function function42(pHwnd0)
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        number lNumber5;
        number lNumber6;
        number lNumber7;
        number lNumber8;
        number lNumber9;
        string lString0;
        string lString1;
    begin
002577:00B4:         USER.GetDlgItem(pHwnd0, 1);
002584:0021:         lNumber0 = LAST_RESULT;
00258C:00B4:         USER.GetDlgItem(pHwnd0, 1);
002599:0021:         lNumber2 = LAST_RESULT;
0025A1:00B4:         USER.GetDlgItem(pHwnd0, 12);
0025AE:0021:         lNumber1 = LAST_RESULT;
0025B6:00B4:         USER.GetDlgItem(pHwnd0, 2);
0025C3:0021:         lNumber4 = LAST_RESULT;
0025CB:00B4:         USER.GetDlgItem(pHwnd0, 9);
0025D8:0021:         lNumber3 = LAST_RESULT;
0025E0:00B4:         USER.IsWindow(lNumber1);
0025E8:0021:         lNumber9 = LAST_RESULT;
0025F0:0128:         lNumber9 = lNumber9 = 0;
002602:0022:         if (lNumber9 = 0) then
                         goto label84;
                     endif;
002610:012F:         return(0);

label84: //Ref: 002602  
00261D:00E2:         Is(51, lString0);
002627:0021:         lNumber5 = LAST_RESULT;
00262F:00E2:         Is(50, lString0);
002639:0021:         lNumber6 = LAST_RESULT;
002641:00E2:         Is(56, lString0);
00264B:0021:         lNumber7 = LAST_RESULT;
002653:00E2:         Is(52, lString0);
00265D:0021:         lNumber8 = LAST_RESULT;
002665:0022:         if (lNumber8 = 0) then
                         goto label86;
                     endif;
002673:0112:         StrLoadString("", "SETUPSTR862", lString1);
002689:00B4:         USER.IsWindow(lNumber0);
002691:0021:         lNumber9 = LAST_RESULT;
002699:0022:         if (lNumber9 = 0) then
                         goto label85;
                     endif;
0026A7:00B4:         USER.SetWindowText(lNumber0, lString1);

label85: //Ref: 002699  
0026B6:00B4:         USER.IsWindow(lNumber2);
0026BE:0021:         lNumber9 = LAST_RESULT;
0026C6:0022:         if (lNumber9 = 0) then
                         goto label86;
                     endif;
0026D4:00B4:         USER.SetWindowText(lNumber2, lString1);

label86: //Ref: 002665  0026C6  
0026E3:00B4:         USER.IsWindow(lNumber0);
0026EB:0021:         lNumber9 = LAST_RESULT;
0026F3:0022:         if (lNumber9 = 0) then
                         goto label87;
                     endif;
002701:00B4:         USER.EnableWindow(lNumber0, lNumber5);

label87: //Ref: 0026F3  
002710:00B4:         USER.IsWindow(lNumber2);
002718:0021:         lNumber9 = LAST_RESULT;
002720:0022:         if (lNumber9 = 0) then
                         goto label88;
                     endif;
00272E:00B4:         USER.EnableWindow(lNumber2, lNumber5);

label88: //Ref: 002720  
00273D:00B4:         USER.IsWindow(lNumber1);
002745:0021:         lNumber9 = LAST_RESULT;
00274D:0022:         if (lNumber9 = 0) then
                         goto label89;
                     endif;
00275B:00B4:         USER.EnableWindow(lNumber1, lNumber6);

label89: //Ref: 00274D  
00276A:00B4:         USER.IsWindow(lNumber4);
002772:0021:         lNumber9 = LAST_RESULT;
00277A:0022:         if (lNumber9 = 0) then
                         goto label90;
                     endif;
002788:00B4:         USER.EnableWindow(lNumber4, lNumber7);

label90: //Ref: 00277A  
002797:00B4:         USER.IsWindow(lNumber3);
00279F:0021:         lNumber9 = LAST_RESULT;
0027A7:0022:         if (lNumber9 = 0) then
                         goto label91;
                     endif;
0027B5:00B4:         USER.EnableWindow(lNumber3, lNumber7);

label91: //Ref: 0027A7  
0027C4:012F:         return(1);
0027CD:00B8:         return;
    end;

    // ------------- FUNCTION function43 --------------
    function function43(pString0, pString1, pString2, pNumber0)
    begin
002F35:0103:         Sprintf(pString0, "%s-%ld", pString1, pNumber0);
002F4C:0119:         pNumber0 = pNumber0 + 1;
002F59:00B8:         return;
002F5B:00B8:         return;
    end;

    // ------------- FUNCTION function44 --------------
    function function44(pInt0, pInt1, pString0, pString1)
        number lNumber0;
        number lNumber1;
        number lNumber2;
    begin
004424:00B4:         USER.GetDlgItem(pInt0, pInt1);
00442F:0021:         lNumber0 = LAST_RESULT;
004437:00B4:         USER.IsWindow(lNumber0);
00443F:0021:         lNumber1 = LAST_RESULT;
004447:0128:         lNumber1 = lNumber1 = 0;
004459:0022:         if (lNumber1 = 0) then
                         goto label196;
                     endif;
004467:012F:         return(0);

label196: //Ref: 004459  
004474:00B5:         function58(pString1);
00447F:00B5:         function58(pString0);
00448A:0023:         StrCompare(pString0, "");
004492:0128:         lNumber1 = LAST_RESULT = 0;
0044A4:0023:         StrCompare(pString1, "");
0044AC:0128:         lNumber2 = LAST_RESULT = 0;
0044BE:0126:         lNumber1 = lNumber1 || lNumber2;
0044C9:0022:         if (lNumber1 = 0) then
                         goto label197;
                     endif;
0044D7:00B4:         USER.EnableWindow(lNumber0, 0);
0044E4:002C:         goto label198;

label197: //Ref: 0044C9  
0044ED:00B4:         USER.EnableWindow(lNumber0, 1);

label198: //Ref: 0044E4  
0044FE:00B8:         return;
004500:00B8:         return;
    end;

    // ------------- FUNCTION function45 --------------
    function function45(pInt0, pInt1, pString0, pString1, pString2)
        number lNumber0;
        number lNumber1;
        number lNumber2;
    begin
003CC0:00B4:         USER.GetDlgItem(pInt0, pInt1);
003CCB:0021:         lNumber0 = LAST_RESULT;
003CD3:00B4:         USER.IsWindow(lNumber0);
003CDB:0021:         lNumber1 = LAST_RESULT;
003CE3:0128:         lNumber1 = lNumber1 = 0;
003CF5:0022:         if (lNumber1 = 0) then
                         goto label170;
                     endif;
003D03:012F:         return(0);

label170: //Ref: 003CF5  
003D10:00B5:         function58(pString1);
003D1B:00B5:         function58(pString0);
003D26:00B5:         function58(pString2);
003D31:0023:         StrCompare(pString0, "");
003D39:0128:         lNumber1 = LAST_RESULT = 0;
003D4B:0023:         StrCompare(pString1, "");
003D53:0128:         lNumber2 = LAST_RESULT = 0;
003D65:0126:         lNumber1 = lNumber1 || lNumber2;
003D70:0023:         StrCompare(pString2, "");
003D78:0128:         lNumber2 = LAST_RESULT = 0;
003D8A:0126:         lNumber1 = lNumber1 || lNumber2;
003D95:0022:         if (lNumber1 = 0) then
                         goto label171;
                     endif;
003DA3:00B4:         USER.EnableWindow(lNumber0, 0);
003DB0:002C:         goto label172;

label171: //Ref: 003D95  
003DB9:00B4:         USER.EnableWindow(lNumber0, 1);

label172: //Ref: 003DB0  
003DCA:00B8:         return;
003DCC:00B8:         return;
    end;

    // ------------- FUNCTION function46 --------------
    function function46(pInt0, pInt1)
        number lNumber0;
        number lNumber1;
        number lNumber2;
    begin
00A0EB:0021:         lNumber0 = 0;
00A0F5:0119:         lNumber2 = pInt1 + lNumber0;
00A100:00B4:         USER.GetDlgItem(pInt0, lNumber2);
00A10B:0021:         lNumber1 = LAST_RESULT;

label539: //Ref: 00A1B9  
00A119:0128:         lNumber2 = lNumber1 > 0;
00A12B:0022:         if (lNumber2 = 0) then
                         goto label542;
                     endif;
00A139:0128:         lNumber2 = number3 = 1;
00A14B:0022:         if (lNumber2 = 0) then
                         goto label540;
                     endif;
00A159:0074:         SendMessage(lNumber1, 0x404, 9, 1);
00A16D:002C:         goto label541;

label540: //Ref: 00A14B  
00A176:0074:         SendMessage(lNumber1, 244, 9, 1);

label541: //Ref: 00A16D  
00A18E:0119:         lNumber0 = lNumber0 + 1;
00A19B:0119:         lNumber2 = pInt1 + lNumber0;
00A1A6:00B4:         USER.GetDlgItem(pInt0, lNumber2);
00A1B1:0021:         lNumber1 = LAST_RESULT;
00A1B9:002C:         goto label539;

label542: //Ref: 00A12B  
00A1C2:00B8:         return;
    end;

    // ------------- FUNCTION function47 --------------
    function function47(pString0, pInt0, pString1, pInt1, pInt2)
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        number lNumber5;
        string lString0;
    begin
00A1DA:0021:         lNumber4 = 0;
00A1E4:009F:         ListCreate(0);
00A1EB:0021:         lNumber3 = LAST_RESULT;
00A1F3:0156:         ComponentListItems(MEDIA, pString0, lNumber3);
00A1FE:0155:         ListSetIndex(lNumber3, -401);
00A208:0021:         lNumber1 = LAST_RESULT;
00A210:0021:         lNumber0 = 0;

label544: //Ref: 00A382  
00A220:0128:         lNumber5 = lNumber1 != 1;
00A232:0022:         if (lNumber5 = 0) then
                         goto label550;
                     endif;
00A240:00F4:         ListCurrentString(lNumber3, lString0);
00A248:0119:         lNumber5 = pInt0 + lNumber0;
00A253:00B4:         USER.GetDlgItem(pInt2, lNumber5);
00A25E:0021:         lNumber2 = LAST_RESULT;
00A266:0022:         if (lNumber2 = 0) then
                         goto label549;
                     endif;
00A274:0119:         lNumber5 = pInt0 + lNumber0;
00A27F:0091:         CtrlSetText(pString1, lNumber5, lString0);
00A28A:014B:         ComponentIsItemSelected(MEDIA, lString0);
00A292:0021:         lNumber5 = LAST_RESULT;
00A29A:0022:         if (lNumber5 = 0) then
                         goto label549;
                     endif;
00A2A8:0128:         lNumber5 = pInt1 = 1;
00A2BA:0022:         if (lNumber5 = 0) then
                         goto label546;
                     endif;
00A2C8:0128:         lNumber5 = lNumber4 = 0;
00A2DA:0022:         if (lNumber5 = 0) then
                         goto label545;
                     endif;
00A2E8:0119:         lNumber5 = pInt0 + lNumber0;
00A2F3:0090:         CtrlSetState(pString1, lNumber5, -1001);

label545: //Ref: 00A2DA  
00A304:002C:         goto label547;

label546: //Ref: 00A2BA  
00A30D:0119:         lNumber5 = pInt0 + lNumber0;
00A318:0090:         CtrlSetState(pString1, lNumber5, -1001);

label547: //Ref: 00A304  
00A329:0128:         lNumber5 = lNumber4 = 0;
00A33B:0022:         if (lNumber5 = 0) then
                         goto label548;
                     endif;
00A349:00B4:         USER.SetFocus(lNumber2);

label548: //Ref: 00A33B  
00A355:0021:         lNumber4 = 1;

label549: //Ref: 00A266  00A29A  
00A363:0155:         ListSetIndex(lNumber3, -101);
00A36D:0021:         lNumber1 = LAST_RESULT;
00A375:0119:         lNumber0 = lNumber0 + 1;
00A382:002C:         goto label544;

label550: //Ref: 00A232  
00A38B:00A0:         ListDestroy(lNumber3);
00A390:0119:         lNumber5 = pInt0 + lNumber0;
00A39B:00B4:         USER.GetDlgItem(pInt2, lNumber5);
00A3A6:0021:         lNumber2 = LAST_RESULT;

label551: //Ref: 00A3FA  
00A3B4:0022:         if (lNumber2 = 0) then
                         goto label552;
                     endif;
00A3C2:00B4:         USER.ShowWindow(lNumber2, 0);
00A3CF:0119:         lNumber0 = lNumber0 + 1;
00A3DC:0119:         lNumber5 = pInt0 + lNumber0;
00A3E7:00B4:         USER.GetDlgItem(pInt2, lNumber5);
00A3F2:0021:         lNumber2 = LAST_RESULT;
00A3FA:002C:         goto label551;

label552: //Ref: 00A3B4  
00A403:00B8:         return;
    end;

    // ------------- FUNCTION function51 --------------
    function function51(pString0, pString1, pString2)
        number lNumber0;
        number lNumber1;
        number lNumber2;
    begin
00CB6B:0162:         ComponentTotalSize(MEDIA, pString0, 1, 1);
00CB7D:0021:         lNumber1 = LAST_RESULT;
00CB85:0005:         GetDiskSpace(pString2);
00CB8A:0021:         lNumber0 = LAST_RESULT;
00CB92:0128:         lNumber2 = lNumber1 < lNumber0;
00CBA2:0022:         if (lNumber2 = 0) then
                         goto label695;
                     endif;
00CBB0:012F:         return(1);

label695: //Ref: 00CBA2  
00CBBD:012F:         return(0);
00CBC6:00B8:         return;
    end;

    // ------------- FUNCTION function53 --------------
    function function53(pString0, pNumber0, pNumber1, pString1, pString2)
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        number lNumber5;
        number lNumber6;
    begin
00C19D:0013:         pString0 = "SdComponentDialogEx";
00C1B8:0113:         EzDefineDialog(pString0, "", "", 0x2efc);
00C1C8:0021:         lNumber5 = LAST_RESULT;
00C1D0:0128:         lNumber5 = lNumber5 = -1;
00C1E2:0022:         if (lNumber5 = 0) then
                         goto label662;
                     endif;
00C1F0:012F:         return(-1);

label662: //Ref: 00C1E2  
00C1FD:0021:         lNumber4 = 0;

label663: //Ref: 00C470  
00C20D:0128:         lNumber5 = lNumber4 = 0;
00C21F:0022:         if (lNumber5 = 0) then
                         goto label671;
                     endif;
00C22D:008C:         WaitOnDialog(pString0);
00C232:0021:         lNumber0 = LAST_RESULT;
00C240:0128:         lNumber5 = lNumber0 = -100;
00C252:0022:         if (lNumber5 = 0) then
                         goto label666;
                     endif;
00C260:009A:         CmdGetHwndDlg(pString0);
00C265:0021:         lNumber2 = LAST_RESULT;
00C26D:00B5:         function33(pString0, lNumber2, 8, string0);
00C283:00B5:         function60(lNumber2, 0x191, pString1, pString2);
00C299:0021:         lNumber1 = LAST_RESULT;
00C2A1:0128:         lNumber5 = lNumber1 = 0;
00C2B3:0022:         if (lNumber5 = 0) then
                         goto label665;
                     endif;
00C2C1:00B5:         function36(-1, "SdComponentDialogEx");
00C2E4:0021:         lNumber0 = -1;
00C2EE:0021:         lNumber4 = 1;

label665: //Ref: 00C2B3  
00C2FC:018C:         ComponentViewSetInfo(lNumber1, 20, pNumber1, "");
00C30C:018C:         ComponentViewSetInfo(pNumber1, 21, lNumber1, "");
00C31C:018E:         ComponentViewRefresh(pNumber1, 0);
00C326:00B4:         USER.GetDlgItem(lNumber2, 0x191);
00C333:0021:         lNumber3 = LAST_RESULT;
00C33B:00B4:         USER.SetFocus(lNumber3);
00C343:002C:         goto label670;

label666: //Ref: 00C252  
00C34C:0128:         lNumber5 = lNumber0 = 1;
00C35E:0022:         if (lNumber5 = 0) then
                         goto label667;
                     endif;
00C36C:0021:         lNumber0 = 1;
00C376:0021:         lNumber4 = 1;
00C380:002C:         goto label670;

label667: //Ref: 00C35E  
00C389:0128:         lNumber5 = lNumber0 = -1;
00C39B:0022:         if (lNumber5 = 0) then
                         goto label668;
                     endif;
00C3A9:00B5:         function36(-1, "SdComponentDialogEx");
00C3CC:0021:         lNumber0 = -1;
00C3D6:0021:         lNumber4 = 1;
00C3E0:002C:         goto label670;

label668: //Ref: 00C39B  
00C3E9:0128:         lNumber5 = lNumber0 = -200;
00C3FB:0022:         if (lNumber5 = 0) then
                         goto label669;
                     endif;
00C409:00B5:         function37(lNumber2, lNumber0, lNumber4);
00C41A:002C:         goto label670;

label669: //Ref: 00C3FB  
00C423:00B5:         function31(lNumber0);
00C42E:0021:         lNumber5 = LAST_RESULT;
00C436:00B5:         function32(lNumber0);
00C441:0021:         lNumber6 = LAST_RESULT;
00C449:0127:         lNumber5 = lNumber5 && lNumber6;
00C454:0022:         if (lNumber5 = 0) then
                         goto label670;
                     endif;
00C462:0021:         lNumber4 = 1;

label670: //Ref: 00C343  00C380  00C3E0  00C41A  00C454  
00C470:002C:         goto label663;

label671: //Ref: 00C21F  
00C479:008D:         EndDialog(pString0);
00C47E:008E:         ReleaseDialog(pString0);
00C483:018F:         ComponentViewDestroy(lNumber1);
00C488:012F:         return(lNumber0);
00C48F:00B8:         return;
    end;

    // ------------- FUNCTION function55 --------------
    function function55(pString0, pNumber0, pNumber1, pNumber2)
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        number lNumber5;
        string lString0;
        string lString1;
    begin
00B531:00A4:         ListGetFirstString(pNumber1, lString0);
00B539:0021:         lNumber0 = LAST_RESULT;
00B541:009F:         ListCreate(0);
00B548:0021:         lNumber2 = LAST_RESULT;

label613: //Ref: 00B5DD  
00B556:0128:         lNumber5 = lNumber0 = 0;
00B568:0022:         if (lNumber5 = 0) then
                         goto label615;
                     endif;
00B576:0013:         lString1 = lString0;
00B57E:007A:         GetByte(lNumber1, lString0, 0);
00B58B:0128:         lNumber5 = lNumber1 != 64;
00B59D:0022:         if (lNumber5 = 0) then
                         goto label614;
                     endif;
00B5AB:0103:         Sprintf(lString1, "@%s", lString0);

label614: //Ref: 00B59D  
00B5C0:00A1:         ListAddString(lNumber2, lString1, 0);
00B5CD:00A5:         ListGetNextString(pNumber1, lString0);
00B5D5:0021:         lNumber0 = LAST_RESULT;
00B5DD:002C:         goto label613;

label615: //Ref: 00B568  
00B5E6:00B5:         function56(pString0, pNumber0, 101, lNumber2);
00B5FC:00B5:         function56(pString0, pNumber0, 0x2bd, pNumber2);
00B612:00A0:         ListDestroy(lNumber2);
00B617:00B4:         USER.GetDlgItem(pNumber0, 1);
00B624:0021:         lNumber4 = LAST_RESULT;
00B62C:00B4:         USER.GetDlgItem(pNumber0, 101);
00B639:0021:         lNumber3 = LAST_RESULT;
00B641:00B4:         USER.IsWindowEnabled(lNumber4);
00B649:0021:         lNumber5 = LAST_RESULT;
00B651:0128:         lNumber5 = lNumber5 = 0;
00B663:0022:         if (lNumber5 = 0) then
                         goto label616;
                     endif;
00B671:00B4:         USER.SetFocus(lNumber3);

label616: //Ref: 00B663  
00B67D:00B8:         return;
00B67F:00B8:         return;
    end;

    // ------------- FUNCTION function56 --------------
    function function56(pString0, pNumber0, pNumber1, pNumber2)
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        string lString0;
    begin
00B695:00A4:         ListGetFirstString(pNumber2, lString0);
00B69D:0021:         lNumber1 = LAST_RESULT;
00B6A5:0021:         lNumber2 = pNumber1;
00B6AD:0021:         lNumber3 = 0;

label618: //Ref: 00B747  
00B6BD:0128:         lNumber4 = lNumber1 = 0;
00B6CF:0022:         if (lNumber4 = 0) then
                         goto label621;
                     endif;
00B6DD:00B4:         USER.GetDlgItem(pNumber0, lNumber2);
00B6E8:0021:         lNumber0 = LAST_RESULT;
00B6F0:0022:         if (lNumber0 = 0) then
                         goto label619;
                     endif;
00B6FE:0091:         CtrlSetText(pString0, lNumber2, lString0);
00B709:00A5:         ListGetNextString(pNumber2, lString0);
00B711:0021:         lNumber1 = LAST_RESULT;
00B719:0119:         lNumber2 = lNumber2 + 1;
00B726:002C:         goto label620;

label619: //Ref: 00B6F0  
00B72F:0021:         lNumber3 = 1;
00B739:0021:         lNumber1 = 1;

label620: //Ref: 00B726  
00B747:002C:         goto label618;

label621: //Ref: 00B6CF  
00B750:0128:         lNumber4 = lNumber3 = 0;
00B762:0022:         if (lNumber4 = 0) then
                         goto label624;
                     endif;
00B770:0021:         lNumber0 = 1;

label622: //Ref: 00B7CD  
00B780:0022:         if (lNumber0 = 0) then
                         goto label624;
                     endif;
00B78E:00B4:         USER.GetDlgItem(pNumber0, lNumber2);
00B799:0021:         lNumber0 = LAST_RESULT;
00B7A1:0022:         if (lNumber0 = 0) then
                         goto label623;
                     endif;
00B7AF:00B4:         USER.ShowWindow(lNumber0, 0);

label623: //Ref: 00B7A1  
00B7C0:0119:         lNumber2 = lNumber2 + 1;
00B7CD:002C:         goto label622;

label624: //Ref: 00B762  00B780  
00B7D6:00B8:         return;
    end;

    // ------------- FUNCTION function57 --------------
    function function57(pString0, pNumber0, pNumber1)
        number lNumber0;
    begin
00DDE7:0022:         if (pNumber1 = 0) then
                         goto label767;
                     endif;
00DDF5:012F:         return(1);

label767: //Ref: 00DDE7  
00DE02:00B4:         USER.GetDlgItem(pNumber0, 0x1f5);
00DE0F:0021:         lNumber0 = LAST_RESULT;
00DE17:0022:         if (lNumber0 = 0) then
                         goto label768;
                     endif;
00DE25:00B4:         USER.ShowWindow(lNumber0, 0);

label768: //Ref: 00DE17  
00DE36:00B8:         return;
00DE38:00B8:         return;
    end;

    // ------------- FUNCTION function58 --------------
    function function58(pString0)
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        number lNumber5;
        number lNumber6;
        number lNumber7;
        string lString0;
    begin
002F71:002F:         StrLength(pString0);
002F76:0021:         lNumber0 = LAST_RESULT;
002F7E:0021:         lNumber3 = 0;
002F88:0021:         lNumber5 = 0;
002F92:0021:         lNumber2 = 0;
002F9C:0021:         lNumber4 = 0;
002FA6:011A:         lNumber6 = lNumber0 - 1;

label122: //Ref: 00309E  
002FB7:0128:         lNumber7 = lNumber4 <= lNumber6;
002FC7:0022:         if (lNumber7 = 0) then
                         goto label127;
                     endif;
002FD5:007A:         GetByte(lNumber1, pString0, lNumber4);
002FE0:0128:         lNumber7 = lNumber1 = 32;
002FF2:0022:         if (lNumber7 = 0) then
                         goto label125;
                     endif;
003000:0128:         lNumber7 = lNumber2 = 0;
003012:0022:         if (lNumber7 = 0) then
                         goto label123;
                     endif;
003020:0021:         lNumber2 = lNumber3;

label123: //Ref: 003012  
00302C:0022:         if (lNumber5 = 0) then
                         goto label124;
                     endif;
00303A:007B:         SetByte(lString0, lNumber3, 32);
003047:0119:         lNumber3 = lNumber3 + 1;

label124: //Ref: 00302C  
003058:002C:         goto label126;

label125: //Ref: 002FF2  
003061:0021:         lNumber5 = 1;
00306B:0021:         lNumber2 = 0;
003075:007B:         SetByte(lString0, lNumber3, lNumber1);
003080:0119:         lNumber3 = lNumber3 + 1;

label126: //Ref: 003058  
003091:0119:         lNumber4 = lNumber4 + 1;
00309E:002C:         goto label122;

label127: //Ref: 002FC7  
0030A7:0022:         if (lNumber2 = 0) then
                         goto label128;
                     endif;
0030B5:007B:         SetByte(lString0, lNumber2, 0);

label128: //Ref: 0030A7  
0030C6:0013:         pString0 = lString0;
0030CE:00B8:         return;
0030D0:00B8:         return;
    end;

    // ------------- FUNCTION function59 --------------
    function function59(pString0, pString1)
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        number lNumber5;
        string lString0;
        string lString1;
    begin
0030EA:0013:         pString0 = "";
0030F2:0013:         pString1 = "";
0030FA:0061:         GetSystemInfo(150, lNumber2, lString1);
003107:0128:         lNumber4 = lNumber2 = 6;
003119:0128:         lNumber5 = number3 = 0;
00312B:0127:         lNumber4 = lNumber4 && lNumber5;
003136:0022:         if (lNumber4 = 0) then
                         goto label130;
                     endif;
003144:0110:         RegDBSetDefaultRoot(-2147483646);
00314B:0013:         lString0 = "\\Software\\Microsoft\\Windows\\CurrentVersion";
00317D:002C:         goto label132;

label130: //Ref: 003136  
003186:0128:         lNumber4 = lNumber2 = 2;
003198:0128:         lNumber5 = number3 = 0;
0031AA:0127:         lNumber4 = lNumber4 && lNumber5;
0031B5:0022:         if (lNumber4 = 0) then
                         goto label131;
                     endif;
0031C3:0110:         RegDBSetDefaultRoot(-2147483646);
0031CA:0013:         lString0 = "\\Software\\Microsoft\\Windows NT\\CurrentVersion";
0031FF:002C:         goto label132;

label131: //Ref: 0031B5  
003208:00B4:         KERNEL.GetModuleHandle("USER");
003214:0021:         lNumber3 = LAST_RESULT;
00321C:00B4:         USER.LoadString(lNumber3, 0x202, pString0, 255);
003231:00B4:         USER.LoadString(lNumber3, 0x203, pString1, 255);
003246:012F:         return(1);

label132: //Ref: 00317D  0031FF  
003253:0128:         lNumber4 = number3 = 0;
003265:0022:         if (lNumber4 = 0) then
                         goto label134;
                     endif;
003273:0088:         RegDBKeyExist(lString0);
003278:0021:         lNumber4 = LAST_RESULT;
003280:0128:         lNumber4 = lNumber4 >= 0;
003292:0022:         if (lNumber4 = 0) then
                         goto label134;
                     endif;
0032A0:0152:         RegDBGetKeyValueEx(lString0, "RegisteredOwner", lNumber0, pString0, lNumber1);
0032C0:0021:         lNumber4 = LAST_RESULT;
0032C8:0128:         lNumber4 = lNumber4 >= 0;
0032DA:0022:         if (lNumber4 = 0) then
                         goto label133;
                     endif;

label133: //Ref: 0032DA  
0032EC:0152:         RegDBGetKeyValueEx(lString0, "RegisteredOrganization", lNumber0, pString1, lNumber1);
003313:0021:         lNumber4 = LAST_RESULT;
00331B:0128:         lNumber4 = lNumber4 >= 0;
00332D:0022:         if (lNumber4 = 0) then
                         goto label134;
                     endif;

label134: //Ref: 003265  003292  00332D  
00333F:0110:         RegDBSetDefaultRoot(-2147483648);
003346:00B8:         return;
003348:00B8:         return;
    end;

    // ------------- FUNCTION function60 --------------
    function function60(pNumber0, pNumber1, pString0, pString1)
        number lNumber0;
        number lNumber1;
        number lNumber2;
    begin
00335E:018B:         ComponentViewCreate(pNumber0, pNumber1);
003366:0021:         lNumber1 = LAST_RESULT;
00336E:0128:         lNumber2 = lNumber1 = 0;
003380:0022:         if (lNumber2 = 0) then
                         goto label136;
                     endif;
00338E:012F:         return(0);

label136: //Ref: 003380  
00339B:0190:         ComponentViewCreateWindow(lNumber1);
0033A0:018C:         ComponentViewSetInfo(lNumber1, 27, 0, pString0);
0033B2:018C:         ComponentViewSetInfo(lNumber1, 26, 0, MEDIA);
0033C4:00B4:         USER.GetDlgItem(pNumber0, 0x2cd);
0033D1:0021:         lNumber0 = LAST_RESULT;
0033D9:0022:         if (lNumber0 = 0) then
                         goto label137;
                     endif;
0033E7:018C:         ComponentViewSetInfo(lNumber1, 24, 0x2cd, "");

label137: //Ref: 0033D9  
0033FD:00B4:         USER.GetDlgItem(pNumber0, 0x2cc);
00340A:0021:         lNumber0 = LAST_RESULT;
003412:0022:         if (lNumber0 = 0) then
                         goto label138;
                     endif;
003420:018C:         ComponentViewSetInfo(lNumber1, 23, 0x2cc, "");

label138: //Ref: 003412  
003436:00B4:         USER.GetDlgItem(pNumber0, 0x2c8);
003443:0021:         lNumber0 = LAST_RESULT;
00344B:0022:         if (lNumber0 = 0) then
                         goto label139;
                     endif;
003459:018C:         ComponentViewSetInfo(lNumber1, 22, 0x2c8, "");

label139: //Ref: 00344B  
00346F:00B4:         USER.GetDlgItem(pNumber0, 197);
00347C:0021:         lNumber0 = LAST_RESULT;
003484:0022:         if (lNumber0 = 0) then
                         goto label140;
                     endif;
003492:018C:         ComponentViewSetInfo(lNumber1, 28, 197, "");

label140: //Ref: 003484  
0034A8:0023:         StrCompare(pString1, "");
0034B0:0128:         lNumber2 = LAST_RESULT != 0;
0034C2:0022:         if (lNumber2 = 0) then
                         goto label141;
                     endif;
0034D0:018C:         ComponentViewSetInfo(lNumber1, 25, 0, pString1);

label141: //Ref: 0034C2  
0034E6:012F:         return(lNumber1);
0034ED:00B8:         return;
    end;

    // ------------- FUNCTION function61 --------------
    function function61(pString0, pString1, pList0, pList1)
        number lNumber0;
        number lNumber1;
        number lNumber2;
        string lString0;
    begin
006EF6:0021:         lNumber0 = 0;
006F00:0013:         pString0 = "";
006F08:00A4:         ListGetFirstString(pList1, lString0);
006F10:0021:         lNumber1 = LAST_RESULT;

label350: //Ref: 006F99  
006F1E:0128:         lNumber2 = lNumber1 = 0;
006F30:0022:         if (lNumber2 = 0) then
                         goto label352;
                     endif;
006F3E:0023:         StrCompare(pString1, lString0);
006F46:0128:         lNumber2 = LAST_RESULT = 0;
006F58:0022:         if (lNumber2 = 0) then
                         goto label351;
                     endif;
006F66:0155:         ListSetIndex(pList0, lNumber0);
006F6E:00F4:         ListCurrentString(pList0, pString0);
006F76:00B8:         return;

label351: //Ref: 006F58  
006F7C:0119:         lNumber0 = lNumber0 + 1;
006F89:00A5:         ListGetNextString(pList1, lString0);
006F91:0021:         lNumber1 = LAST_RESULT;
006F99:002C:         goto label350;

label352: //Ref: 006F30  
006FA2:00B8:         return;
    end;

    // ------------- FUNCTION function62 --------------
    function function62(pString0, pString1)
        number lNumber0;
        number lNumber1;
    begin
006FB8:0194:         ComponentSetupTypeGetData(MEDIA, pString1, 2, lNumber0, pString0);
006FCB:0023:         StrCompare(pString0, "");
006FD3:0128:         lNumber1 = LAST_RESULT = 0;
006FE5:0022:         if (lNumber1 = 0) then
                         goto label354;
                     endif;
006FF3:0013:         pString0 = pString1;

label354: //Ref: 006FE5  
006FFF:00B8:         return;
007001:00B8:         return;
    end;

    // ------------- FUNCTION function63 --------------
    function function63()
        number lNumber0;
        number lNumber1;
        string lString0;
    begin
003501:0061:         GetSystemInfo(150, lNumber0, lString0);
00350E:0128:         lNumber1 = lNumber0 = 2;
003520:0022:         if (lNumber1 = 0) then
                         goto label144;
                     endif;
00352E:0061:         GetSystemInfo(80, lNumber0, lString0);
00353B:0021:         lNumber1 = LAST_RESULT;
003543:0128:         lNumber1 = lNumber1 = 0;
003555:0022:         if (lNumber1 = 0) then
                         goto label143;
                     endif;
003563:0128:         lNumber1 = lNumber0 >= 4;
003575:0022:         if (lNumber1 = 0) then
                         goto label143;
                     endif;
003583:012F:         return(1);

label143: //Ref: 003555  003575  
003590:002C:         goto label145;

label144: //Ref: 003520  
003599:0128:         lNumber1 = lNumber0 = 6;
0035AB:0022:         if (lNumber1 = 0) then
                         goto label145;
                     endif;
0035B9:012F:         return(1);

label145: //Ref: 003590  0035AB  
0035C6:012F:         return(0);
0035CF:00B8:         return;
    end;

    // ------------- FUNCTION function89 --------------
    function function89()
        number lNumber0;
        number lNumber1;
    begin

label9: //Ref: 000E69  000EA2  
000E39:00B5:         function100();
000E41:0021:         lNumber0 = LAST_RESULT;
000E49:0128:         lNumber1 = lNumber0 = 12;
000E5B:0022:         if (lNumber1 = 0) then
                         goto label10;
                     endif;
000E69:002C:         goto label9;

label10: //Ref: 000E5B  000EDB  
000E72:00B5:         function101();
000E7A:0021:         lNumber0 = LAST_RESULT;
000E82:0128:         lNumber1 = lNumber0 = 12;
000E94:0022:         if (lNumber1 = 0) then
                         goto label11;
                     endif;
000EA2:002C:         goto label9;

label11: //Ref: 000E94  000F04  000F3D  
000EAB:00B5:         function102();
000EB3:0021:         lNumber0 = LAST_RESULT;
000EBB:0128:         lNumber1 = lNumber0 = 12;
000ECD:0022:         if (lNumber1 = 0) then
                         goto label12;
                     endif;
000EDB:002C:         goto label10;

label12: //Ref: 000ECD  
000EE4:0128:         lNumber1 = lNumber0 = 120;
000EF6:0022:         if (lNumber1 = 0) then
                         goto label13;
                     endif;
000F04:002C:         goto label11;

label13: //Ref: 000EF6  000F76  
000F0D:00B5:         function103();
000F15:0021:         lNumber0 = LAST_RESULT;
000F1D:0128:         lNumber1 = lNumber0 = 12;
000F2F:0022:         if (lNumber1 = 0) then
                         goto label14;
                     endif;
000F3D:002C:         goto label11;

label14: //Ref: 000F2F  
000F46:00B5:         function104();
000F4E:0021:         lNumber0 = LAST_RESULT;
000F56:0128:         lNumber1 = lNumber0 = 12;
000F68:0022:         if (lNumber1 = 0) then
                         goto label15;
                     endif;
000F76:002C:         goto label13;

label15: //Ref: 000F68  
000F7F:012F:         return(0);
000F88:00B8:         return;
    end;

    // ------------- FUNCTION function90 --------------
    function function90()
        number lNumber0;
        number lNumber1;
    begin
001136:0021:         lNumber1 = 1;
001140:0008:         SetStatusWindow(0, "");
00114A:0002:         Disable(54);
001151:0001:         Enable(4);
001158:0064:         StatusUpdate(1, 100);
001164:0179:         ComponentMoveData(MEDIA, lNumber1, 0);
001171:0021:         lNumber0 = LAST_RESULT;
001179:00B5:         function91(lNumber0);
001184:0002:         Disable(4);
00118B:012F:         return(lNumber0);
001192:00B8:         return;
    end;

    // ------------- FUNCTION function91 --------------
    function function91(pNumber0)
        number lNumber0;
        string lString0;
        string lString1;
    begin
0011AE:0128:         lNumber0 = pNumber0 = 0;
0011C0:0022:         if (lNumber0 = 0) then
                         goto label22;
                     endif;
0011CE:012F:         return(0);
0011D7:002C:         goto label23;

label22: //Ref: 0011C0  
0011E0:0112:         StrLoadString("", "TITLE_CAPTIONBAR", lString0);
0011FB:0112:         StrLoadString("", "ERROR_MOVEDATA", lString1);
001214:0104:         SprintfBox(-65533, lString0, lString1, pNumber0);
001227:0021:         number35 = 1;
001231:012F:         return(pNumber0);

label23: //Ref: 0011D7  
00123C:00B8:         return;
    end;

    // ------------- FUNCTION function92 --------------
    function function92()
        number lNumber0;
        number lNumber1;
        string lString0;
        string lString1;
        string lString2;
        string lString3;
        string lString4;
    begin
000FA4:0112:         StrLoadString("", "COMPANY_NAME", lString1);
000FBB:0112:         StrLoadString("", "PRODUCT_NAME", lString2);
000FD2:0112:         StrLoadString("", "PRODUCT_VERSION", lString3);
000FEC:0112:         StrLoadString("", "PRODUCT_KEY", lString4);
001002:0146:         InstallationInfo(lString1, lString2, lString3, lString4);
001010:0013:         lString0 = "Uninst.isu";
001022:0112:         StrLoadString("", "UNINST_KEY", lString1);
001037:0145:         DeinstallStart(string3, lString0, lString1, 0);
001047:0021:         lNumber0 = LAST_RESULT;
00104F:0128:         lNumber1 = lNumber0 < 0;
001061:0022:         if (lNumber1 = 0) then
                         goto label17;
                     endif;
00106F:0112:         StrLoadString("", "ERROR_UNINSTSETUP", lString1);
00108B:002A:         MessageBox(lString1, -65534);

label17: //Ref: 001061  
001099:0013:         string8 = TARGETDIR;
0010A1:0127:         lNumber1 = number36 && number34;
0010AC:0022:         if (lNumber1 = 0) then
                         goto label18;
                     endif;
0010BA:0147:         RegDBSetItem(1, string8);
0010C4:0112:         StrLoadString("", "PRODUCT_KEY", lString1);
0010DA:0125:         lString1 = string8 ^ lString1;
0010E5:0147:         RegDBSetItem(2, lString1);
0010EF:0112:         StrLoadString("", "UNINST_DISPLAY_NAME", lString1);
00110D:0147:         RegDBSetItem(3, lString1);

label18: //Ref: 0010AC  
00111B:012F:         return(0);
001124:00B8:         return;
    end;

    // ------------- FUNCTION function93 --------------
    function function93()
        string lString0;
        string lString1;
    begin
001252:0112:         StrLoadString("", "PRODUCT_KEY", lString1);
001268:0125:         lString0 = string3 ^ lString1;
001273:0195:         DeinstallSetReference(lString0);
001278:012F:         return(0);
001281:00B8:         return;
    end;

    // ------------- FUNCTION function94 --------------
    function function94()
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        number lNumber5;
        number lNumber6;
        string lString0;
        string lString1;
        string lString2;
        string lString3;
        string lString4;
        string lString5;
        string lString6;
    begin
0012A1:0021:         lNumber1 = -2147483647;
0012AB:0110:         RegDBSetDefaultRoot(lNumber1);
0012B0:0021:         lNumber6 = LAST_RESULT;
0012B8:0128:         lNumber6 = lNumber6 < 0;
0012CA:0022:         if (lNumber6 = 0) then
                         goto label26;
                     endif;
0012D8:002A:         MessageBox("\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff", -65533);
0012F2:002C:         goto label32;

label26: //Ref: 0012CA  
0012FB:0013:         lString0 = "\\Software\\WinHp System\\\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\\System_Inf";
001331:0013:         lString1 = "";
001339:0088:         RegDBKeyExist(lString0);
00133E:0021:         lNumber6 = LAST_RESULT;
001346:0128:         lNumber6 = lNumber6 < 0;
001358:0022:         if (lNumber6 = 0) then
                         goto label30;
                     endif;
001366:0150:         RegDBCreateKeyEx(lString0, lString1);
00136E:0021:         lNumber6 = LAST_RESULT;
001376:0128:         lNumber6 = lNumber6 < 0;
001388:0022:         if (lNumber6 = 0) then
                         goto label27;
                     endif;
001396:002A:         MessageBox("\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff!", -65533);
0013AF:002C:         goto label30;

label27: //Ref: 001388  
0013B8:0013:         lString3 = "SysDir";
0013C6:0013:         lString4 = TARGETDIR;
0013CE:0021:         lNumber2 = 1;
0013D8:0021:         lNumber3 = -1;
0013E2:0151:         RegDBSetKeyValueEx(lString0, lString3, lNumber2, lString4, lNumber3);
0013F3:0021:         lNumber6 = LAST_RESULT;
0013FB:0128:         lNumber6 = lNumber6 < 0;
00140D:0022:         if (lNumber6 = 0) then
                         goto label28;
                     endif;
00141B:002A:         MessageBox("\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff!", -65533);
001432:0159:         abort;

label28: //Ref: 00140D  
001438:0013:         lString3 = "ProductSerial";
00144D:0013:         lString4 = string6;
001455:0021:         lNumber2 = 1;
00145F:0021:         lNumber3 = -1;
001469:0151:         RegDBSetKeyValueEx(lString0, lString3, lNumber2, lString4, lNumber3);
00147A:0021:         lNumber6 = LAST_RESULT;
001482:0128:         lNumber6 = lNumber6 < 0;
001494:0022:         if (lNumber6 = 0) then
                         goto label29;
                     endif;
0014A2:002A:         MessageBox("\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff!", -65533);
0014B9:0159:         abort;

label29: //Ref: 001494  
0014BF:0013:         lString3 = "LockDriver";
0014D1:0013:         lString4 = "0";
0014DA:0021:         lNumber2 = 1;
0014E4:0021:         lNumber3 = -1;
0014EE:0151:         RegDBSetKeyValueEx(lString0, lString3, lNumber2, lString4, lNumber3);
0014FF:0021:         lNumber6 = LAST_RESULT;
001507:0128:         lNumber6 = lNumber6 < 0;
001519:0022:         if (lNumber6 = 0) then
                         goto label30;
                     endif;
001527:002A:         MessageBox("\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff!", -65533);
00153E:0159:         abort;

label30: //Ref: 001358  0013AF  001519  
001544:0013:         lString0 = "\\Software\\WinHp System\\\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\\System_Ref";
00157A:0013:         lString1 = "";
001582:0088:         RegDBKeyExist(lString0);
001587:0021:         lNumber6 = LAST_RESULT;
00158F:0128:         lNumber6 = lNumber6 < 0;
0015A1:0022:         if (lNumber6 = 0) then
                         goto label32;
                     endif;
0015AF:0150:         RegDBCreateKeyEx(lString0, lString1);
0015B7:0021:         lNumber6 = LAST_RESULT;
0015BF:0128:         lNumber6 = lNumber6 < 0;
0015D1:0022:         if (lNumber6 = 0) then
                         goto label31;
                     endif;
0015DF:002A:         MessageBox("\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff!", -65533);
0015F8:002C:         goto label32;

label31: //Ref: 0015D1  
001601:0013:         lString3 = "InputModel";
001613:0013:         lString4 = "1";
00161C:0021:         lNumber2 = 4;
001626:0021:         lNumber3 = -1;
001630:0151:         RegDBSetKeyValueEx(lString0, lString3, lNumber2, lString4, lNumber3);
001641:0021:         lNumber6 = LAST_RESULT;
001649:0128:         lNumber6 = lNumber6 < 0;
00165B:0022:         if (lNumber6 = 0) then
                         goto label32;
                     endif;
001669:002A:         MessageBox("\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff!", -65533);
001680:0159:         abort;

label32: //Ref: 0012F2  0015A1  0015F8  00165B  
001686:012F:         return(lNumber0);
00168D:00B8:         return;
    end;

    // ------------- FUNCTION function95 --------------
    function function95()
        number lNumber0;
        number lNumber1;
        string lString0;
        string lString1;
        string lString2;
        string lString3;
        string lString4;
        string lString5;
        string lString6;
        string lString7;
        string lString8;
        string lString9;
    begin
0016B3:0125:         lString6 = string8 ^ "WinHp.EXE";
0016C7:0013:         lString7 = "";
0016CF:015A:         LongPathToQuote(lString6, 1);
0016D9:015B:         LongPathToShortPath(lString7);
0016DE:0124:         lString9 = lString6 + " ";
0016EA:0124:         lString2 = lString9 + lString7;
0016F5:0013:         lString3 = TARGETDIR;
0016FD:0013:         lString4 = "";
001705:0021:         lNumber0 = 2;
00170F:0013:         lString5 = "";
001717:0021:         lNumber1 = 2;
001721:0013:         lString1 = "\xff\xff\xff\xff\xff\xff\xff\xff";
001731:0013:         lString8 = "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff";
001745:0013:         lString0 = FOLDER_DESKTOP;
00174D:013A:         AddFolderIcon(lString0, lString1, lString2, lString3, lString4, lNumber0, lString5, lNumber1);
001767:0013:         lString0 = FOLDER_PROGRAMS;
00176F:013A:         AddFolderIcon(lString8, lString1, lString2, lString3, lString4, lNumber0, lString5, lNumber1);
001789:0125:         lString6 = string8 ^ "HPFJCL.exe";
00179E:0013:         lString7 = "";
0017A6:015A:         LongPathToQuote(lString6, 1);
0017B0:015B:         LongPathToShortPath(lString7);
0017B5:0124:         lString9 = lString6 + " ";
0017C1:0124:         lString2 = lString9 + lString7;
0017CC:0013:         lString3 = TARGETDIR;
0017D4:0013:         lString4 = "";
0017DC:0021:         lNumber0 = 2;
0017E6:0013:         lString5 = "";
0017EE:0013:         lString0 = FOLDER_PROGRAMS;
0017F6:0013:         lString1 = "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff";
00180A:013A:         AddFolderIcon(lString8, lString1, lString2, lString3, lString4, lNumber0, lString5, lNumber1);
001824:0013:         lString0 = FOLDER_DESKTOP;
00182C:013A:         AddFolderIcon(lString0, lString1, lString2, lString3, lString4, lNumber0, lString5, lNumber1);
001846:012F:         return(0);
00184F:00B8:         return;
    end;

    // ------------- FUNCTION function96 --------------
    function function96()
        number lNumber0;
        string lString0;
    begin
001863:0022:         if (number35 = 0) then
                         goto label35;
                     endif;
001871:012F:         return(0);

label35: //Ref: 001863  
00187E:00B5:         function105();
001886:0022:         if (BATCH_INSTALL = 0) then
                         goto label36;
                     endif;
001894:014F:         CommitSharedFiles(0);

label36: //Ref: 001886  
00189F:0061:         GetSystemInfo(150, lNumber0, lString0);
0018AC:012F:         return(0);
0018B5:00B8:         return;
    end;

    // ------------- FUNCTION function97 --------------
    function function97()
        string lString0;
        string lString1;
    begin
0018CB:0001:         Enable(66);
0018D2:0021:         number35 = 0;
0018DC:0022:         if (number36 = 0) then
                         goto label38;
                     endif;
0018EA:0112:         StrLoadString("", "COMPANY_NAME", lString0);
001901:0125:         lString0 = PROGRAMFILES ^ lString0;
00190C:0112:         StrLoadString("", "PRODUCT_NAME", lString1);
001923:0125:         string3 = lString0 ^ lString1;
00192E:002C:         goto label39;

label38: //Ref: 0018DC  
001937:0112:         StrLoadString("", "COMPANY_NAME16", lString0);
001950:0125:         lString0 = PROGRAMFILES ^ lString0;
00195B:0112:         StrLoadString("", "PRODUCT_NAME16", lString1);
001974:0125:         string3 = lString0 ^ lString1;

label39: //Ref: 00192E  
001983:0013:         TARGETDIR = string3;
00198B:0112:         StrLoadString("", "PRODUCT_NAME", lString0);
0019A2:00B5:         function26(lString0);
0019AD:0001:         Enable(54);
0019B4:012F:         return(0);
0019BD:00B8:         return;
    end;

    // ------------- FUNCTION function98 --------------
    function function98()
        string lString0;
    begin
0019D1:0001:         Enable(29);
0019D8:0112:         StrLoadString("", "TITLE_MAIN", lString0);
0019ED:0004:         SetTitle(lString0, 24, 0xffffff);
0019FC:0112:         StrLoadString("", "TITLE_CAPTIONBAR", lString0);
001A17:0004:         SetTitle(lString0, 0, -16776960);
001A26:0001:         Enable(12);
001A2D:000A:         Delay(1);
001A34:00B8:         return;
001A36:00B8:         return;
    end;

    // ------------- FUNCTION function99 --------------
    function function99()
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        string lString0;
        string lString1;
    begin
001A4C:0021:         number33 = 0;
001A56:0021:         number34 = 0;
001A60:0035:         GetExtents(lNumber0, lNumber1);
001A68:0128:         lNumber3 = lNumber1 < 0x1e0;
001A7A:0022:         if (lNumber3 = 0) then
                         goto label42;
                     endif;
001A88:0112:         StrLoadString("", "ERROR_VGARESOLUTION", lString1);
001AA6:002A:         MessageBox(lString1, -65534);
001AB0:0159:         abort;

label42: //Ref: 001A7A  
001AB6:0021:         number36 = 1;
001AC0:0061:         GetSystemInfo(211, lNumber2, lString0);
001ACD:0128:         lNumber3 = lNumber2 = 16;
001ADF:0022:         if (lNumber3 = 0) then
                         goto label43;
                     endif;
001AED:0021:         number36 = 0;
001AF7:012F:         return(0);

label43: //Ref: 001ADF  
001B04:0061:         GetSystemInfo(150, lNumber2, lString0);
001B11:0128:         lNumber3 = lNumber2 = 2;
001B23:0022:         if (lNumber3 = 0) then
                         goto label45;
                     endif;
001B31:0021:         number33 = 1;
001B3B:0061:         GetSystemInfo(80, lNumber2, lString0);
001B48:0021:         lNumber3 = LAST_RESULT;
001B50:0128:         lNumber3 = lNumber3 = 0;
001B62:0022:         if (lNumber3 = 0) then
                         goto label44;
                     endif;
001B70:0128:         lNumber3 = lNumber2 >= 4;
001B82:0022:         if (lNumber3 = 0) then
                         goto label44;
                     endif;
001B90:0021:         number34 = 1;

label44: //Ref: 001B62  001B82  
001B9E:002C:         goto label46;

label45: //Ref: 001B23  
001BA7:0128:         lNumber3 = lNumber2 = 6;
001BB9:0022:         if (lNumber3 = 0) then
                         goto label46;
                     endif;
001BC7:0021:         number34 = 1;

label46: //Ref: 001B9E  001BB9  
001BD5:00B8:         return;
001BD7:00B8:         return;
    end;

    // ------------- FUNCTION function100 --------------
    function function100()
        number lNumber0;
        string lString0;
        string lString1;
    begin
001BED:0013:         lString0 = "";
001BF5:0013:         lString1 = "";
001BFD:00B5:         function6(lString0, lString1);
001C0B:0021:         lNumber0 = LAST_RESULT;
001C13:012F:         return(lNumber0);
001C1A:00B8:         return;
    end;

    // ------------- FUNCTION function101 --------------
    function function101()
        number lNumber0;
        string lString0;
        string lString1;
        string lString2;
        string lString3;
    begin
001C34:0125:         lString3 = SUPPORTDIR ^ "license.txt";
001C4A:0013:         lString0 = "";
001C52:0013:         lString1 = "";
001C5A:0013:         lString2 = "";
001C62:00B5:         function27(lString0, lString1, lString2, lString3);
001C76:0021:         lNumber0 = LAST_RESULT;
001C7E:012F:         return(lNumber0);
001C85:00B8:         return;
    end;

    // ------------- FUNCTION function102 --------------
    function function102()
        number lNumber0;
        number lNumber1;
        number lNumber2;
        string lString0;
        string lString1;
    begin
001C9B:0013:         string4 = "";
001CA3:0013:         string5 = "";
001CAB:0013:         lString0 = "";
001CB3:0013:         lString1 = "";
001CBB:00B5:         function1(lString0, lString1, string4, string5, string6);
001CD2:0021:         lNumber0 = LAST_RESULT;
001CDA:0128:         lNumber1 = lNumber0 != 12;
001CEC:0022:         if (lNumber1 = 0) then
                         goto label51;
                     endif;
001CFA:0023:         StrCompare(string6, "3838438");
001D09:0128:         lNumber1 = LAST_RESULT != 0;
001D1B:00B5:         function106(string6);
001D26:0021:         lNumber2 = LAST_RESULT;
001D2E:0128:         lNumber2 = lNumber2 = 0;
001D40:0127:         lNumber1 = lNumber1 && lNumber2;
001D4B:0022:         if (lNumber1 = 0) then
                         goto label50;
                     endif;
001D59:003B:         SetDialogTitle(4, "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff");
001D71:002A:         MessageBox("\xff\xff\xff\xff:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\n     \xff\xff\xff\xff\xff\xff,\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff", -65535);
001DD1:0021:         lNumber0 = 120;

label50: //Ref: 001D4B  
001DDF:0023:         StrCompare(string6, "3838438");
001DEE:0128:         lNumber1 = LAST_RESULT = 0;
001E00:0022:         if (lNumber1 = 0) then
                         goto label51;
                     endif;
001E0E:0013:         string6 = "00000-00000-0000";

label51: //Ref: 001CEC  001E00  
001E2A:012F:         return(lNumber0);
001E31:00B8:         return;
    end;

    // ------------- FUNCTION function103 --------------
    function function103()
        number lNumber0;
        string lString0;
        string lString1;
    begin
001E47:0013:         lString0 = "";
001E4F:0013:         lString1 = "";
001E57:0013:         string3 = "C:\\HPZP";
001E66:00B5:         function5(lString0, lString1, string3, 0);
001E7C:0021:         lNumber0 = LAST_RESULT;
001E84:0013:         TARGETDIR = string3;
001E8C:012F:         return(lNumber0);
001E93:00B8:         return;
    end;

    // ------------- FUNCTION function104 --------------
    function function104()
        number lNumber0;
        number lNumber1;
        string lString0;
        string lString1;
    begin
001EA9:0023:         StrCompare(string7, "");
001EB1:0128:         lNumber1 = LAST_RESULT = 0;
001EC3:0022:         if (lNumber1 = 0) then
                         goto label54;
                     endif;
001ED1:0112:         StrLoadString("", "FOLDER_NAME", string7);

label54: //Ref: 001EC3  
001EEB:0013:         lString0 = "";
001EF3:0013:         lString1 = "";
001EFB:00B5:         function8(lString0, lString1, string7);
001F0C:0021:         lNumber0 = LAST_RESULT;
001F14:012F:         return(lNumber0);
001F1B:00B8:         return;
    end;

    // ------------- FUNCTION function105 --------------
    function function105()
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        string lString0;
        string lString1;
        string lString2;
        string lString3;
        string lString4;
    begin
001F37:0128:         lNumber4 = BATCH_INSTALL = 0;
001F49:0022:         if (lNumber4 = 0) then
                         goto label56;
                     endif;
001F57:0021:         lNumber2 = 0;
001F61:0021:         lNumber3 = 0;
001F6B:0013:         lString1 = "";
001F73:0013:         lString2 = "";
001F7B:0013:         lString3 = "";
001F83:0013:         lString4 = "";
001F8B:00B5:         function30(lString0, lString1, lString2, lString3, lString4, lNumber2, lNumber3);
001FA8:0021:         lNumber0 = LAST_RESULT;
001FB0:012F:         return(0);

label56: //Ref: 001F49  
001FBD:0021:         lNumber1 = 3;
001FC7:0013:         lString0 = "";
001FCF:0013:         lString1 = "";
001FD7:0013:         lString2 = "";
001FDF:00B5:         function29(lString0, lString1, lNumber1, lString2, 0);
001FF8:0021:         lNumber0 = LAST_RESULT;
002000:012F:         return(lNumber0);
002007:00B8:         return;
    end;

    // ------------- FUNCTION function106 --------------
    function function106(pString0)
        number lNumber0;
        number lNumber1;
        number lNumber2;
        number lNumber3;
        number lNumber4;
        number lNumber5;
        string lString0;
        string lString1;
    begin
00201F:0021:         lNumber2 = 0;
002029:0021:         lNumber1 = 0;
002033:002F:         StrLength(pString0);
002038:0021:         lNumber0 = LAST_RESULT;
002040:0128:         lNumber4 = lNumber0 != 14;
002052:0128:         lNumber5 = lNumber0 != 16;
002064:0127:         lNumber4 = lNumber4 && lNumber5;
00206F:0022:         if (lNumber4 = 0) then
                         goto label58;
                     endif;
00207D:012F:         return(0);

label58: //Ref: 00206F  00211E  
00208C:011A:         lNumber4 = lNumber0 - 1;
002099:0128:         lNumber4 = lNumber2 < lNumber4;
0020A9:0022:         if (lNumber4 = 0) then
                         goto label60;
                     endif;
0020B7:007A:         GetByte(lNumber4, pString0, lNumber2);
0020C2:0128:         lNumber4 = lNumber4 != 45;
0020D4:0022:         if (lNumber4 = 0) then
                         goto label59;
                     endif;
0020E2:007A:         GetByte(lNumber4, pString0, lNumber2);
0020ED:007B:         SetByte(lString0, 0, lNumber4);
0020FA:006D:         StrToNum(lNumber3, lString0);
002102:0119:         lNumber1 = lNumber1 + lNumber3;

label59: //Ref: 0020D4  
002111:0119:         lNumber2 = lNumber2 + 1;
00211E:002C:         goto label58;

label60: //Ref: 0020A9  
002127:0128:         lNumber4 = lNumber1 = 0;
002139:0022:         if (lNumber4 = 0) then
                         goto label61;
                     endif;
002147:012F:         return(0);

label61: //Ref: 002139  
002154:0021:         lNumber3 = 0;
00215E:0123:         lNumber3 = lNumber1 % 10;
00216B:011A:         lNumber4 = lNumber0 - 1;
002178:007A:         GetByte(lNumber4, pString0, lNumber4);
002183:007B:         SetByte(lString0, 0, lNumber4);
002190:006D:         StrToNum(lNumber1, lString0);
002198:0128:         lNumber4 = lNumber1 = lNumber3;
0021A8:0022:         if (lNumber4 = 0) then
                         goto label62;
                     endif;
0021B6:012F:         return(1);
0021BF:002C:         goto label63;

label62: //Ref: 0021A8  
0021C8:012F:         return(0);

label63: //Ref: 0021BF  
0021D5:00B8:         return;
    end;
2005-3-17 14:01
0
雪    币: 153
活跃值: (401)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
太高深  看的头大 
2005-3-18 01:36
0
游客
登录 | 注册 方可回帖
返回
//