diff --git a/IFPSLib.Tests/CompiledCode_v22.bin b/IFPSLib.Tests/CompiledCode_v22.bin new file mode 100644 index 0000000..0a915a0 Binary files /dev/null and b/IFPSLib.Tests/CompiledCode_v22.bin differ diff --git a/IFPSLib.Tests/CompiledCode_v22.txt b/IFPSLib.Tests/CompiledCode_v22.txt new file mode 100644 index 0000000..0050fb8 --- /dev/null +++ b/IFPSLib.Tests/CompiledCode_v22.txt @@ -0,0 +1,3175 @@ +.version 23 + +.entry !MAIN + +.type primitive(Pointer) Pointer +.type primitive(U32) U32 +.type primitive(Variant) Variant +.type primitive(PChar) PChar +.type primitive(Currency) Currency +.type primitive(Extended) Extended +.type primitive(Double) Double +.type primitive(Single) Single +.type primitive(S64) S64 +.type primitive(String) String +.type primitive(U32) U32_2 +.type primitive(S32) S32 +.type primitive(S16) S16 +.type primitive(U16) U16 +.type primitive(S8) S8 +.type(export) funcptr(void()) ANYMETHOD +.type primitive(String) String_2 +.type primitive(UnicodeString) UnicodeString +.type primitive(UnicodeString) UnicodeString_2 +.type primitive(String) String_3 +.type primitive(UnicodeString) UnicodeString_3 +.type primitive(WideString) WideString +.type primitive(WideChar) WideChar +.type primitive(WideChar) WideChar_2 +.type primitive(Char) Char +.type primitive(U8) U8 +.type primitive(U16) U16_2 +.type primitive(U32) U32_3 +.type(export) primitive(U8) BOOLEAN +.type primitive(U8) U8_2 +.type(export) class(TWIZARDFORM) TWIZARDFORM +.type(export) class(TMAINFORM) TMAINFORM +.type(export) class(TUNINSTALLPROGRESSFORM) TUNINSTALLPROGRESSFORM +.type(export) class(TDOWNLOADWIZARDPAGE) TDOWNLOADWIZARDPAGE +.type(export) class(TPANEL) TPANEL +.type(export) class(TBITMAPIMAGE) TBITMAPIMAGE +.type funcptr(void(__in,__in,__in)) Type36 +.type(export) class(TFONT) TFONT +.type(export) array(Pointer) !OPENARRAYOFCONST +.type array(Variant) Type39 +.type(export) class(TBITMAP) TBITMAP +.type(export) class(TCONTROL) TCONTROL +.type(export) class(TWINCONTROL) TWINCONTROL +.type(export) class(TNEWBUTTON) TNEWBUTTON +.type(export) class(TNEWSTATICTEXT) TNEWSTATICTEXT +.type(export) interface("00020400-0000-0000-c000-000000000046") IDISPATCH +.type(export) array(Variant) !OPENARRAYOFVARIANT +.type(export) funcptr(returnsval(__in,__in,__in,__in)) TONDOWNLOADPROGRESS +.type(export) primitive(U16) TSETUPMESSAGEID +.type(export) class(TNEWPROGRESSBAR) TNEWPROGRESSBAR +.type(export) class(TNEWRADIOBUTTON) TNEWRADIOBUTTON +.type(export) class(TCOMPONENT) TCOMPONENT +.type(export) class(TNEWNOTEBOOKPAGE) TNEWNOTEBOOKPAGE +.type(export) primitive(U8) TPANELBEVEL +.type(export) primitive(U8) TEXECWAIT +.type(export) primitive(U8) TMSGBOXTYPE +.type(export) class(TOBJECT) TOBJECT +.type(export) funcptr(void(__in)) TNOTIFYEVENT +.type(export) primitive(U8) TUNINSTALLSTEP +.type(export) primitive(U8) TSETUPSTEP + +.global(import) TWIZARDFORM WIZARDFORM +.global(import) TMAINFORM MAINFORM +.global(import) TUNINSTALLPROGRESSFORM UNINSTALLPROGRESSFORM +.global TDOWNLOADWIZARDPAGE Global3 +.global TPANEL Global4 +.global S32 Global5 +.global S32 Global6 +.global S32 Global7 +.global S32 Global8 +.global S32 Global9 +.global TBITMAPIMAGE Global10 + +.function(export) void !MAIN() + ret + +.function(import) external dll("files:mediaplayer.dll","DSGetLastError") __stdcall returnsval files:mediaplayer.dll!DSGetLastError(__out __unknown) + +.function(import) external dll("files:mediaplayer.dll","DSPlayMediaFile") __stdcall returnsval files:mediaplayer.dll!DSPlayMediaFile() + +.function(import) external dll("files:mediaplayer.dll","DSStopMediaPlay") __stdcall returnsval files:mediaplayer.dll!DSStopMediaPlay() + +.function(import) external dll("files:mediaplayer.dll","DSSetVolume") __stdcall returnsval files:mediaplayer.dll!DSSetVolume(__in __unknown) + +.function(import) external dll("files:mediaplayer.dll","DSSetBalance") __stdcall returnsval files:mediaplayer.dll!DSSetBalance(__in __unknown) + +.function(import) external dll("files:mediaplayer.dll","DSInitializeAudioFile") __stdcall returnsval files:mediaplayer.dll!DSInitializeAudioFile(__in __unknown,__in __unknown) + +.function(import) external dll("files:mediaplayer.dll","DSInitializeVideoFile") __stdcall returnsval files:mediaplayer.dll!DSInitializeVideoFile(__in __unknown,__in __unknown,__out __unknown,__out __unknown,__in __unknown) + +.function(import) external dll("kernel32.dll","ExitProcess") __stdcall void kernel32.dll!ExitProcess(__in __unknown) + +.function(export) S32 GETSCALINGFACTOR() + pushtype BOOLEAN ; StackCount = 1 + pushtype S32 ; StackCount = 2 + pushtype TFONT ; StackCount = 3 + pushtype TWIZARDFORM ; StackCount = 4 + assign Var4, WIZARDFORM + pushvar Var3 ; StackCount = 5 + call TFORM->FONT + pop ; StackCount = 4 + pop ; StackCount = 3 + pushvar Var2 ; StackCount = 4 + call TFONT->PIXELSPERINCH + pop ; StackCount = 3 + pop ; StackCount = 2 + ge Var1, Var2, S32(168) + pop ; StackCount = 1 + sfz Var1 + pop ; StackCount = 0 + jf loc_70 + assign RetVal, S32(175) + jump loc_22b +loc_70: + pushtype BOOLEAN ; StackCount = 1 + pushtype S32 ; StackCount = 2 + pushtype TFONT ; StackCount = 3 + pushtype TWIZARDFORM ; StackCount = 4 + assign Var4, WIZARDFORM + pushvar Var3 ; StackCount = 5 + call TFORM->FONT + pop ; StackCount = 4 + pop ; StackCount = 3 + pushvar Var2 ; StackCount = 4 + call TFONT->PIXELSPERINCH + pop ; StackCount = 3 + pop ; StackCount = 2 + ge Var1, Var2, S32(144) + pop ; StackCount = 1 + jz loc_125, Var1 + pushtype BOOLEAN ; StackCount = 2 + pushtype S32 ; StackCount = 3 + pushtype TFONT ; StackCount = 4 + pushtype TWIZARDFORM ; StackCount = 5 + assign Var5, WIZARDFORM + pushvar Var4 ; StackCount = 6 + call TFORM->FONT + pop ; StackCount = 5 + pop ; StackCount = 4 + pushvar Var3 ; StackCount = 5 + call TFONT->PIXELSPERINCH + pop ; StackCount = 4 + pop ; StackCount = 3 + lt Var2, Var3, S32(168) + pop ; StackCount = 2 + and Var1, Var2 + pop ; StackCount = 1 +loc_125: + sfz Var1 + pop ; StackCount = 0 + jf loc_146 + assign RetVal, S32(150) + jump loc_22b +loc_146: + pushtype BOOLEAN ; StackCount = 1 + pushtype S32 ; StackCount = 2 + pushtype TFONT ; StackCount = 3 + pushtype TWIZARDFORM ; StackCount = 4 + assign Var4, WIZARDFORM + pushvar Var3 ; StackCount = 5 + call TFORM->FONT + pop ; StackCount = 4 + pop ; StackCount = 3 + pushvar Var2 ; StackCount = 4 + call TFONT->PIXELSPERINCH + pop ; StackCount = 3 + pop ; StackCount = 2 + ge Var1, Var2, S32(120) + pop ; StackCount = 1 + jz loc_1fb, Var1 + pushtype BOOLEAN ; StackCount = 2 + pushtype S32 ; StackCount = 3 + pushtype TFONT ; StackCount = 4 + pushtype TWIZARDFORM ; StackCount = 5 + assign Var5, WIZARDFORM + pushvar Var4 ; StackCount = 6 + call TFORM->FONT + pop ; StackCount = 5 + pop ; StackCount = 4 + pushvar Var3 ; StackCount = 5 + call TFONT->PIXELSPERINCH + pop ; StackCount = 4 + pop ; StackCount = 3 + lt Var2, Var3, S32(144) + pop ; StackCount = 2 + and Var1, Var2 + pop ; StackCount = 1 +loc_1fb: + sfz Var1 + pop ; StackCount = 0 + jf loc_21c + assign RetVal, S32(125) + jump loc_22b +loc_21c: + assign RetVal, S32(100) +loc_22b: + ret + +.function(import) external class(TFORM, FONT) __pascal void TFORM->FONT(__in __unknown,__in __unknown) + +.function(import) external class(TFONT, PIXELSPERINCH) __pascal void TFONT->PIXELSPERINCH(__in __unknown,__in __unknown) + +.function(export) void LOADEMBEDEDSCALEDBITMAP(__in TBITMAPIMAGE Arg1,__in UnicodeString_2 Arg2) + pushtype UnicodeString_2 ; StackCount = 1 + pushtype UnicodeString_2 ; StackCount = 2 + pushtype !OPENARRAYOFCONST ; StackCount = 3 + pushtype !OPENARRAYOFCONST ; StackCount = 4 + pushtype S32 ; StackCount = 5 + assign Var5, S32(2) + pushvar Var4 ; StackCount = 6 + call SETARRAYLENGTH + pop ; StackCount = 5 + pop ; StackCount = 4 + cpval Var4[0], Arg2 + pushtype S32 ; StackCount = 5 + pushvar Var5 ; StackCount = 6 + call GETSCALINGFACTOR + pop ; StackCount = 5 + cpval Var4[1], Var5 + pop ; StackCount = 4 + assign Var3, Var4 + pop ; StackCount = 3 + pushtype UnicodeString_2 ; StackCount = 4 + assign Var4, UnicodeString_3("%s %d.bmp") + pushvar Var1 ; StackCount = 5 + call FORMAT + pop ; StackCount = 4 + pop ; StackCount = 3 + pop ; StackCount = 2 + pushtype UnicodeString_2 ; StackCount = 3 + assign Var3, Var1 + call EXTRACTTEMPORARYFILE + pop ; StackCount = 2 + pushtype UnicodeString_2 ; StackCount = 3 + pushtype UnicodeString_3 ; StackCount = 4 + assign Var4, UnicodeString_3("{tmp}\\") + add Var4, Var1 + assign Var3, Var4 + pop ; StackCount = 3 + pushvar Var2 ; StackCount = 4 + call EXPANDCONSTANT + pop ; StackCount = 3 + pop ; StackCount = 2 + pushtype UnicodeString_2 ; StackCount = 3 + assign Var3, Var2 + pushtype TBITMAP ; StackCount = 4 + pushtype TBITMAPIMAGE ; StackCount = 5 + assign Var5, Arg1 + pushvar Var4 ; StackCount = 6 + call TBITMAPIMAGE->BITMAP + pop ; StackCount = 5 + pop ; StackCount = 4 + call TGRAPHIC->LOADFROMFILE + pop ; StackCount = 3 + pop ; StackCount = 2 + pushtype BOOLEAN ; StackCount = 3 + pushtype UnicodeString_2 ; StackCount = 4 + assign Var4, Var2 + pushvar Var3 ; StackCount = 5 + call DELETEFILE + pop ; StackCount = 4 + pop ; StackCount = 3 + pop ; StackCount = 2 + ret + +.function(import) external internal returnsval FORMAT(__in __unknown,__in __unknown) + +.function(import) external internal void SETARRAYLENGTH() + +.function(import) external internal void EXTRACTTEMPORARYFILE(__in __unknown) + +.function(import) external internal returnsval EXPANDCONSTANT(__in __unknown) + +.function(import) external class(TBITMAPIMAGE, BITMAP) __pascal void TBITMAPIMAGE->BITMAP(__in __unknown,__in __unknown) + +.function(import) external class(TGRAPHIC, LOADFROMFILE) __fastcall void TGRAPHIC->LOADFROMFILE(__in __unknown) + +.function(import) external internal returnsval DELETEFILE(__in __unknown) + +.function(export) void CENTERINPARENT2(__in TCONTROL Arg1) + pushtype BOOLEAN ; StackCount = 1 + pushtype TCONTROL ; StackCount = 2 + assign Var2, Arg1 + pushvar Var1 ; StackCount = 3 + call !ASSIGNED + pop ; StackCount = 2 + pop ; StackCount = 1 + jz loc_6d, Var1 + pushtype BOOLEAN ; StackCount = 2 + pushtype TWINCONTROL ; StackCount = 3 + pushtype TCONTROL ; StackCount = 4 + assign Var4, Arg1 + pushvar Var3 ; StackCount = 5 + call TCONTROL->PARENT + pop ; StackCount = 4 + pop ; StackCount = 3 + pushvar Var2 ; StackCount = 4 + call !ASSIGNED + pop ; StackCount = 3 + pop ; StackCount = 2 + and Var1, Var2 + pop ; StackCount = 1 +loc_6d: + sfz Var1 + pop ; StackCount = 0 + jf loc_14d + pushtype S32 ; StackCount = 1 + pushtype TWINCONTROL ; StackCount = 2 + pushtype TCONTROL ; StackCount = 3 + assign Var3, Arg1 + pushvar Var2 ; StackCount = 4 + call TCONTROL->PARENT + pop ; StackCount = 3 + pop ; StackCount = 2 + pushvar Var1 ; StackCount = 3 + call TCONTROL->WIDTH + pop ; StackCount = 2 + pop ; StackCount = 1 + pushtype S32 ; StackCount = 2 + pushtype TCONTROL ; StackCount = 3 + assign Var3, Arg1 + pushvar Var2 ; StackCount = 4 + call TCONTROL->WIDTH + pop ; StackCount = 3 + pop ; StackCount = 2 + sub Var1, Var2 + pop ; StackCount = 1 + div Var1, S32(2) + pushtype TCONTROL ; StackCount = 2 + assign Var2, Arg1 + call TCONTROL->LEFT + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype S32 ; StackCount = 1 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 2 + assign Var2, Global3 + pushvar Var1 ; StackCount = 3 + call TWIZARDPAGE->SURFACEHEIGHT + pop ; StackCount = 2 + pop ; StackCount = 1 + sub Var1, S32(40) + pushtype TCONTROL ; StackCount = 2 + assign Var2, Arg1 + call TCONTROL->TOP + pop ; StackCount = 1 + pop ; StackCount = 0 +loc_14d: + ret + +.function(import) external internal returnsval !ASSIGNED(__in __unknown) + +.function(import) external class(TCONTROL, PARENT) __pascal void TCONTROL->PARENT(__in __unknown,__in __unknown) + +.function(import) external class(TCONTROL, WIDTH) __pascal void TCONTROL->WIDTH(__in __unknown,__in __unknown) + +.function(import) external class(TCONTROL, LEFT, property) __pascal void TCONTROL->LEFT(__in __unknown,__in __unknown) + +.function(import) external class(TWIZARDPAGE, SURFACEHEIGHT) __pascal void TWIZARDPAGE->SURFACEHEIGHT(__in __unknown,__in __unknown) + +.function(import) external class(TCONTROL, TOP, property) __pascal void TCONTROL->TOP(__in __unknown,__in __unknown) + +.function(export) void CENTERINPARENT(__in TCONTROL Arg1) + pushtype BOOLEAN ; StackCount = 1 + pushtype TCONTROL ; StackCount = 2 + assign Var2, Arg1 + pushvar Var1 ; StackCount = 3 + call !ASSIGNED + pop ; StackCount = 2 + pop ; StackCount = 1 + jz loc_6d, Var1 + pushtype BOOLEAN ; StackCount = 2 + pushtype TWINCONTROL ; StackCount = 3 + pushtype TCONTROL ; StackCount = 4 + assign Var4, Arg1 + pushvar Var3 ; StackCount = 5 + call TCONTROL->PARENT + pop ; StackCount = 4 + pop ; StackCount = 3 + pushvar Var2 ; StackCount = 4 + call !ASSIGNED + pop ; StackCount = 3 + pop ; StackCount = 2 + and Var1, Var2 + pop ; StackCount = 1 +loc_6d: + sfz Var1 + pop ; StackCount = 0 + jf loc_42a + pushtype S32 ; StackCount = 1 + pushtype TWINCONTROL ; StackCount = 2 + pushtype TCONTROL ; StackCount = 3 + assign Var3, Arg1 + pushvar Var2 ; StackCount = 4 + call TCONTROL->PARENT + pop ; StackCount = 3 + pop ; StackCount = 2 + pushvar Var1 ; StackCount = 3 + call TCONTROL->WIDTH + pop ; StackCount = 2 + pop ; StackCount = 1 + pushtype S32 ; StackCount = 2 + pushtype TCONTROL ; StackCount = 3 + assign Var3, Arg1 + pushvar Var2 ; StackCount = 4 + call TCONTROL->WIDTH + pop ; StackCount = 3 + pop ; StackCount = 2 + sub Var1, Var2 + pop ; StackCount = 1 + div Var1, S32(2) + pushtype TCONTROL ; StackCount = 2 + assign Var2, Arg1 + call TCONTROL->LEFT + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype BOOLEAN ; StackCount = 1 + ge Var1, Global5, Global6 + jz loc_147, Var1 + pushtype BOOLEAN ; StackCount = 2 + lt Var2, Global5, Global7 + and Var1, Var2 + pop ; StackCount = 1 +loc_147: + sfz Var1 + pop ; StackCount = 0 + jf loc_1da + pushtype S32 ; StackCount = 1 + assign Var1, S32(20) + pushtype TCONTROL ; StackCount = 2 + assign Var2, Arg1 + call TCONTROL->TOP + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype S32 ; StackCount = 1 + assign Var1, S32(500) + pushtype TPANEL ; StackCount = 2 + assign Var2, Global4 + call TCONTROL->WIDTH_2 + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype S32 ; StackCount = 1 + assign Var1, S32(300) + pushtype TPANEL ; StackCount = 2 + assign Var2, Global4 + call TCONTROL->HEIGHT + pop ; StackCount = 1 + pop ; StackCount = 0 + jump loc_42a +loc_1da: + pushtype BOOLEAN ; StackCount = 1 + ge Var1, Global5, Global7 + jz loc_21d, Var1 + pushtype BOOLEAN ; StackCount = 2 + lt Var2, Global5, Global8 + and Var1, Var2 + pop ; StackCount = 1 +loc_21d: + sfz Var1 + pop ; StackCount = 0 + jf loc_2b0 + pushtype S32 ; StackCount = 1 + assign Var1, S32(20) + pushtype TCONTROL ; StackCount = 2 + assign Var2, Arg1 + call TCONTROL->TOP + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype S32 ; StackCount = 1 + assign Var1, S32(634) + pushtype TPANEL ; StackCount = 2 + assign Var2, Global4 + call TCONTROL->WIDTH_2 + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype S32 ; StackCount = 1 + assign Var1, S32(382) + pushtype TPANEL ; StackCount = 2 + assign Var2, Global4 + call TCONTROL->HEIGHT + pop ; StackCount = 1 + pop ; StackCount = 0 + jump loc_42a +loc_2b0: + pushtype BOOLEAN ; StackCount = 1 + le Var1, Global5, Global8 + jz loc_2f3, Var1 + pushtype BOOLEAN ; StackCount = 2 + gt Var2, Global9, Global8 + and Var1, Var2 + pop ; StackCount = 1 +loc_2f3: + sfz Var1 + pop ; StackCount = 0 + jf loc_386 + pushtype S32 ; StackCount = 1 + assign Var1, S32(20) + pushtype TCONTROL ; StackCount = 2 + assign Var2, Arg1 + call TCONTROL->TOP + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype S32 ; StackCount = 1 + assign Var1, S32(779) + pushtype TPANEL ; StackCount = 2 + assign Var2, Global4 + call TCONTROL->WIDTH_2 + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype S32 ; StackCount = 1 + assign Var1, S32(469) + pushtype TPANEL ; StackCount = 2 + assign Var2, Global4 + call TCONTROL->HEIGHT + pop ; StackCount = 1 + pop ; StackCount = 0 + jump loc_42a +loc_386: + pushtype BOOLEAN ; StackCount = 1 + ge Var1, Global5, Global9 + sfz Var1 + pop ; StackCount = 0 + jf loc_42a + pushtype S32 ; StackCount = 1 + assign Var1, S32(20) + pushtype TCONTROL ; StackCount = 2 + assign Var2, Arg1 + call TCONTROL->TOP + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype S32 ; StackCount = 1 + assign Var1, S32(975) + pushtype TPANEL ; StackCount = 2 + assign Var2, Global4 + call TCONTROL->WIDTH_2 + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype S32 ; StackCount = 1 + assign Var1, S32(585) + pushtype TPANEL ; StackCount = 2 + assign Var2, Global4 + call TCONTROL->HEIGHT + pop ; StackCount = 1 + pop ; StackCount = 0 +loc_42a: + ret + +.function(import) external class(TCONTROL, WIDTH, property) __pascal void TCONTROL->WIDTH_2(__in __unknown,__in __unknown) + +.function(import) external class(TCONTROL, HEIGHT, property) __pascal void TCONTROL->HEIGHT(__in __unknown,__in __unknown) + +.function(export) BOOLEAN ONDOWNLOADPROGRESS(__in UnicodeString_2 Arg1,__in UnicodeString_2 Arg2,__in S64 Arg3,__in S64 Arg4) + pushtype BOOLEAN ; StackCount = 1 + assign Var1, BOOLEAN(0) + pushtype TNEWBUTTON ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TDOWNLOADWIZARDPAGE->ABORTBUTTON + pop ; StackCount = 3 + pop ; StackCount = 2 + call TCONTROL->VISIBLE + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype BOOLEAN ; StackCount = 1 + assign Var1, BOOLEAN(0) + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG2LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TCONTROL->VISIBLE + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("") + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG2LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype S32 ; StackCount = 1 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 2 + assign Var2, Global3 + pushvar Var1 ; StackCount = 3 + call TWIZARDPAGE->SURFACEHEIGHT + pop ; StackCount = 2 + pop ; StackCount = 1 + sub Var1, S32(70) + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG1LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TCONTROL->TOP + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype BOOLEAN ; StackCount = 1 + pushtype UnicodeString_2 ; StackCount = 2 + pushvar Var2 ; StackCount = 3 + call ACTIVELANGUAGE + pop ; StackCount = 2 + eq Var1, Var2, UnicodeString_3("en") + pop ; StackCount = 1 + sfz Var1 + pop ; StackCount = 0 + jf loc_1be + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("Downloading Additional Files") + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG1LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 1 + pop ; StackCount = 0 +loc_1be: + pushtype BOOLEAN ; StackCount = 1 + pushtype UnicodeString_2 ; StackCount = 2 + pushvar Var2 ; StackCount = 3 + call ACTIVELANGUAGE + pop ; StackCount = 2 + eq Var1, Var2, UnicodeString_3("fr") + pop ; StackCount = 1 + sfz Var1 + pop ; StackCount = 0 + jf loc_286 + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("Téléchargement de fichiers additionnels") + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG1LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 1 + pop ; StackCount = 0 +loc_286: + pushtype BOOLEAN ; StackCount = 1 + pushtype UnicodeString_2 ; StackCount = 2 + pushvar Var2 ; StackCount = 3 + call ACTIVELANGUAGE + pop ; StackCount = 2 + eq Var1, Var2, UnicodeString_3("de") + pop ; StackCount = 1 + sfz Var1 + pop ; StackCount = 0 + jf loc_340 + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("Zusätliche Dateien herunterladen") + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG1LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 1 + pop ; StackCount = 0 +loc_340: + pushtype BOOLEAN ; StackCount = 1 + pushtype UnicodeString_2 ; StackCount = 2 + pushvar Var2 ; StackCount = 3 + call ACTIVELANGUAGE + pop ; StackCount = 2 + eq Var1, Var2, UnicodeString_3("it") + pop ; StackCount = 1 + sfz Var1 + pop ; StackCount = 0 + jf loc_3f0 + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("Download di file aggiuntivi") + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG1LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 1 + pop ; StackCount = 0 +loc_3f0: + pushtype BOOLEAN ; StackCount = 1 + pushtype UnicodeString_2 ; StackCount = 2 + pushvar Var2 ; StackCount = 3 + call ACTIVELANGUAGE + pop ; StackCount = 2 + eq Var1, Var2, UnicodeString_3("es") + pop ; StackCount = 1 + sfz Var1 + pop ; StackCount = 0 + jf loc_4aa + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("Descargando archivos adicionales") + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG1LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 1 + pop ; StackCount = 0 +loc_4aa: + pushtype BOOLEAN ; StackCount = 1 + pushtype UnicodeString_2 ; StackCount = 2 + pushvar Var2 ; StackCount = 3 + call ACTIVELANGUAGE + pop ; StackCount = 2 + eq Var1, Var2, UnicodeString_3("jp") + pop ; StackCount = 1 + sfz Var1 + pop ; StackCount = 0 + jf loc_540 + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("追加ファイルをダウンロード中") + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG1LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 1 + pop ; StackCount = 0 +loc_540: + pushtype BOOLEAN ; StackCount = 1 + pushtype UnicodeString_2 ; StackCount = 2 + pushvar Var2 ; StackCount = 3 + call ACTIVELANGUAGE + pop ; StackCount = 2 + eq Var1, Var2, UnicodeString_3("ko") + pop ; StackCount = 1 + sfz Var1 + pop ; StackCount = 0 + jf loc_5ce + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("추가 파일 다운로드") + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG1LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 1 + pop ; StackCount = 0 +loc_5ce: + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("") + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG2LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype BOOLEAN ; StackCount = 1 + assign Var1, BOOLEAN(0) + pushtype TNEWBUTTON ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TDOWNLOADWIZARDPAGE->ABORTBUTTON + pop ; StackCount = 3 + pop ; StackCount = 2 + call TCONTROL->VISIBLE + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype S32 ; StackCount = 1 + assign Var1, S32(16777215) + pushtype TPANEL ; StackCount = 2 + assign Var2, Global4 + call TPANEL->COLOR + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype BOOLEAN ; StackCount = 1 + eq Var1, Arg3, Arg4 + sfz Var1 + pop ; StackCount = 0 + jf loc_7d2 + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("") + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG2LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype UnicodeString_2 ; StackCount = 1 + pushtype !OPENARRAYOFCONST ; StackCount = 2 + pushtype !OPENARRAYOFCONST ; StackCount = 3 + pushtype S32 ; StackCount = 4 + assign Var4, S32(1) + pushvar Var3 ; StackCount = 5 + call SETARRAYLENGTH + pop ; StackCount = 4 + pop ; StackCount = 3 + cpval Var3[0], Arg2 + assign Var2, Var3 + pop ; StackCount = 2 + pushtype UnicodeString_2 ; StackCount = 3 + assign Var3, UnicodeString_3("Successfully downloaded file to {tmp}: %s") + pushvar Var1 ; StackCount = 4 + call FORMAT + pop ; StackCount = 3 + pop ; StackCount = 2 + pop ; StackCount = 1 + call LOG + pop ; StackCount = 0 + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("") + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG2LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 1 + pop ; StackCount = 0 +loc_7d2: + pushtype BOOLEAN ; StackCount = 1 + ne Var1, Arg4, S32(0) + sfz Var1 + pop ; StackCount = 0 + jf loc_926 + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("") + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG2LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype UnicodeString_2 ; StackCount = 1 + pushtype !OPENARRAYOFCONST ; StackCount = 2 + pushtype !OPENARRAYOFCONST ; StackCount = 3 + pushtype S32 ; StackCount = 4 + assign Var4, S32(2) + pushvar Var3 ; StackCount = 5 + call SETARRAYLENGTH + pop ; StackCount = 4 + pop ; StackCount = 3 + cpval Var3[0], Arg3 + cpval Var3[1], Arg4 + assign Var2, Var3 + pop ; StackCount = 2 + pushtype UnicodeString_2 ; StackCount = 3 + assign Var3, UnicodeString_3(" %d of %d bytes done.") + pushvar Var1 ; StackCount = 4 + call FORMAT + pop ; StackCount = 3 + pop ; StackCount = 2 + pop ; StackCount = 1 + call LOG + pop ; StackCount = 0 + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("") + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG2LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 1 + pop ; StackCount = 0 + jump loc_a33 +loc_926: + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("") + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG2LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype UnicodeString_2 ; StackCount = 1 + pushtype !OPENARRAYOFCONST ; StackCount = 2 + pushtype !OPENARRAYOFCONST ; StackCount = 3 + pushtype S32 ; StackCount = 4 + assign Var4, S32(1) + pushvar Var3 ; StackCount = 5 + call SETARRAYLENGTH + pop ; StackCount = 4 + pop ; StackCount = 3 + cpval Var3[0], Arg3 + assign Var2, Var3 + pop ; StackCount = 2 + pushtype UnicodeString_2 ; StackCount = 3 + assign Var3, UnicodeString_3(" %d bytes done.") + pushvar Var1 ; StackCount = 4 + call FORMAT + pop ; StackCount = 3 + pop ; StackCount = 2 + pop ; StackCount = 1 + call LOG + pop ; StackCount = 0 + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("") + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG2LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 1 + pop ; StackCount = 0 +loc_a33: + assign RetVal, BOOLEAN(1) + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("") + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG2LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 1 + pop ; StackCount = 0 + ret + +.function(import) external class(TDOWNLOADWIZARDPAGE, ABORTBUTTON) __pascal void TDOWNLOADWIZARDPAGE->ABORTBUTTON(__in __unknown,__in __unknown) + +.function(import) external class(TCONTROL, VISIBLE, property) __pascal void TCONTROL->VISIBLE(__in __unknown,__in __unknown) + +.function(import) external class(TOUTPUTPROGRESSWIZARDPAGE, MSG2LABEL) __pascal void TOUTPUTPROGRESSWIZARDPAGE->MSG2LABEL(__in __unknown,__in __unknown) + +.function(import) external class(TNEWSTATICTEXT, CAPTION, property) __pascal void TNEWSTATICTEXT->CAPTION(__in __unknown,__in __unknown) + +.function(import) external class(TOUTPUTPROGRESSWIZARDPAGE, MSG1LABEL) __pascal void TOUTPUTPROGRESSWIZARDPAGE->MSG1LABEL(__in __unknown,__in __unknown) + +.function(import) external internal returnsval ACTIVELANGUAGE() + +.function(import) external class(TPANEL, COLOR, property) __pascal void TPANEL->COLOR(__in __unknown,__in __unknown) + +.function(import) external internal void LOG(__in __unknown) + +.function(export) void UNZIP(__in PChar Arg1,__in PChar Arg2) + pushtype Variant ; StackCount = 1 + pushtype Variant ; StackCount = 2 + pushtype Variant ; StackCount = 3 + pushtype Variant ; StackCount = 4 + pushtype Variant ; StackCount = 5 + pushtype Variant ; StackCount = 6 + pushtype BOOLEAN ; StackCount = 7 + pushtype UnicodeString_2 ; StackCount = 8 + assign Var8, Arg1 + pushvar Var7 ; StackCount = 9 + call FILEEXISTS + pop ; StackCount = 8 + pop ; StackCount = 7 + sfz Var7 + pop ; StackCount = 6 + jf loc_32f + pushtype BOOLEAN ; StackCount = 7 + pushtype UnicodeString_2 ; StackCount = 8 + assign Var8, Arg2 + pushvar Var7 ; StackCount = 9 + call FORCEDIRECTORIES + pop ; StackCount = 8 + pop ; StackCount = 7 + pop ; StackCount = 6 + pushtype IDISPATCH ; StackCount = 7 + pushtype UnicodeString_2 ; StackCount = 8 + assign Var8, UnicodeString_3("Shell.Application") + pushvar Var7 ; StackCount = 9 + call CREATEOLEOBJECT + pop ; StackCount = 8 + pop ; StackCount = 7 + assign Var1, Var7 + pop ; StackCount = 6 + assign Var2, Arg1 + assign Var3, Arg2 + pushtype !OPENARRAYOFVARIANT ; StackCount = 7 + pushtype !OPENARRAYOFVARIANT ; StackCount = 8 + pushtype S32 ; StackCount = 9 + assign Var9, S32(1) + pushvar Var8 ; StackCount = 10 + call SETARRAYLENGTH + pop ; StackCount = 9 + pop ; StackCount = 8 + assign Var8[0], Var2 + assign Var7, Var8 + pop ; StackCount = 7 + pushtype String_3 ; StackCount = 8 + assign Var8, String_3("NameSpace") + pushtype BOOLEAN ; StackCount = 9 + assign Var9, BOOLEAN(0) + pushtype IDISPATCH ; StackCount = 10 + assign Var10, Var1 + pushvar Var4 ; StackCount = 11 + call IDISPATCHINVOKE + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 + pop ; StackCount = 7 + pop ; StackCount = 6 + pushtype !OPENARRAYOFVARIANT ; StackCount = 7 + pushtype !OPENARRAYOFVARIANT ; StackCount = 8 + pushtype S32 ; StackCount = 9 + assign Var9, S32(1) + pushvar Var8 ; StackCount = 10 + call SETARRAYLENGTH + pop ; StackCount = 9 + pop ; StackCount = 8 + assign Var8[0], Var3 + assign Var7, Var8 + pop ; StackCount = 7 + pushtype String_3 ; StackCount = 8 + assign Var8, String_3("NameSpace") + pushtype BOOLEAN ; StackCount = 9 + assign Var9, BOOLEAN(0) + pushtype IDISPATCH ; StackCount = 10 + assign Var10, Var1 + pushvar Var5 ; StackCount = 11 + call IDISPATCHINVOKE + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 + pop ; StackCount = 7 + pop ; StackCount = 6 + pushtype !OPENARRAYOFVARIANT ; StackCount = 7 + pushtype !OPENARRAYOFVARIANT ; StackCount = 8 + pushtype S32 ; StackCount = 9 + assign Var9, S32(0) + pushvar Var8 ; StackCount = 10 + call SETARRAYLENGTH + pop ; StackCount = 9 + pop ; StackCount = 8 + assign Var7, Var8 + pop ; StackCount = 7 + pushtype String_3 ; StackCount = 8 + assign Var8, String_3("Items") + pushtype BOOLEAN ; StackCount = 9 + assign Var9, BOOLEAN(0) + pushtype IDISPATCH ; StackCount = 10 + assign Var10, Var4 + pushvar Var6 ; StackCount = 11 + call IDISPATCHINVOKE + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 + pop ; StackCount = 7 + pop ; StackCount = 6 + pushtype Variant ; StackCount = 7 + pushtype !OPENARRAYOFVARIANT ; StackCount = 8 + pushtype !OPENARRAYOFVARIANT ; StackCount = 9 + pushtype S32 ; StackCount = 10 + assign Var10, S32(2) + pushvar Var9 ; StackCount = 11 + call SETARRAYLENGTH + pop ; StackCount = 10 + pop ; StackCount = 9 + assign Var9[0], Var6 + assign Var9[1], S32(20) + assign Var8, Var9 + pop ; StackCount = 8 + pushtype String_3 ; StackCount = 9 + assign Var9, String_3("CopyHere") + pushtype BOOLEAN ; StackCount = 10 + assign Var10, BOOLEAN(0) + pushtype IDISPATCH ; StackCount = 11 + assign Var11, Var5 + pushvar Var7 ; StackCount = 12 + call IDISPATCHINVOKE + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 + pop ; StackCount = 7 + pop ; StackCount = 6 +loc_32f: + ret + +.function(import) external internal returnsval FILEEXISTS(__in __unknown) + +.function(import) external internal returnsval FORCEDIRECTORIES(__in __unknown) + +.function(import) external internal returnsval CREATEOLEOBJECT(__in __unknown) + +.function(import) external internal returnsval IDISPATCHINVOKE(__in __unknown,__in __unknown,__in __unknown,__in __unknown) + +.function(export) void INITIALIZEWIZARD() + pushtype BOOLEAN ; StackCount = 1 + pushtype S32 ; StackCount = 2 + pushvar Var2 ; StackCount = 3 + call GETSCALINGFACTOR + pop ; StackCount = 2 + eq Var1, Var2, S32(125) + pop ; StackCount = 1 + sfz Var1 + pop ; StackCount = 0 + jf loc_df + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("WizardImage") + pushtype TBITMAPIMAGE ; StackCount = 2 + pushtype TWIZARDFORM ; StackCount = 3 + assign Var3, WIZARDFORM + pushvar Var2 ; StackCount = 4 + call TWIZARDFORM->WIZARDBITMAPIMAGE + pop ; StackCount = 3 + pop ; StackCount = 2 + call LOADEMBEDEDSCALEDBITMAP + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("WizardImage") + pushtype TBITMAPIMAGE ; StackCount = 2 + pushtype TWIZARDFORM ; StackCount = 3 + assign Var3, WIZARDFORM + pushvar Var2 ; StackCount = 4 + call TWIZARDFORM->WIZARDBITMAPIMAGE2 + pop ; StackCount = 3 + pop ; StackCount = 2 + call LOADEMBEDEDSCALEDBITMAP + pop ; StackCount = 1 + pop ; StackCount = 0 +loc_df: + pushtype BOOLEAN ; StackCount = 1 + pushtype S32 ; StackCount = 2 + pushvar Var2 ; StackCount = 3 + call GETSCALINGFACTOR + pop ; StackCount = 2 + eq Var1, Var2, S32(150) + pop ; StackCount = 1 + sfz Var1 + pop ; StackCount = 0 + jf loc_1be + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("WizardImage") + pushtype TBITMAPIMAGE ; StackCount = 2 + pushtype TWIZARDFORM ; StackCount = 3 + assign Var3, WIZARDFORM + pushvar Var2 ; StackCount = 4 + call TWIZARDFORM->WIZARDBITMAPIMAGE + pop ; StackCount = 3 + pop ; StackCount = 2 + call LOADEMBEDEDSCALEDBITMAP + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("WizardImage") + pushtype TBITMAPIMAGE ; StackCount = 2 + pushtype TWIZARDFORM ; StackCount = 3 + assign Var3, WIZARDFORM + pushvar Var2 ; StackCount = 4 + call TWIZARDFORM->WIZARDBITMAPIMAGE2 + pop ; StackCount = 3 + pop ; StackCount = 2 + call LOADEMBEDEDSCALEDBITMAP + pop ; StackCount = 1 + pop ; StackCount = 0 +loc_1be: + pushtype BOOLEAN ; StackCount = 1 + pushtype S32 ; StackCount = 2 + pushvar Var2 ; StackCount = 3 + call GETSCALINGFACTOR + pop ; StackCount = 2 + eq Var1, Var2, S32(175) + pop ; StackCount = 1 + sfz Var1 + pop ; StackCount = 0 + jf loc_29d + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("WizardImage") + pushtype TBITMAPIMAGE ; StackCount = 2 + pushtype TWIZARDFORM ; StackCount = 3 + assign Var3, WIZARDFORM + pushvar Var2 ; StackCount = 4 + call TWIZARDFORM->WIZARDBITMAPIMAGE + pop ; StackCount = 3 + pop ; StackCount = 2 + call LOADEMBEDEDSCALEDBITMAP + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("WizardImage") + pushtype TBITMAPIMAGE ; StackCount = 2 + pushtype TWIZARDFORM ; StackCount = 3 + assign Var3, WIZARDFORM + pushvar Var2 ; StackCount = 4 + call TWIZARDFORM->WIZARDBITMAPIMAGE2 + pop ; StackCount = 3 + pop ; StackCount = 2 + call LOADEMBEDEDSCALEDBITMAP + pop ; StackCount = 1 + pop ; StackCount = 0 +loc_29d: + pushtype TFONT ; StackCount = 1 + pushtype TWIZARDFORM ; StackCount = 2 + assign Var2, WIZARDFORM + pushvar Var1 ; StackCount = 3 + call TFORM->FONT + pop ; StackCount = 2 + pop ; StackCount = 1 + pushvar Global5 ; StackCount = 2 + call TFONT->PIXELSPERINCH + pop ; StackCount = 1 + pop ; StackCount = 0 + assign Global6, S32(96) + assign Global7, S32(120) + assign Global8, S32(144) + assign Global9, S32(168) + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("Animation-with-icon.avi") + call EXTRACTTEMPORARYFILE + pop ; StackCount = 0 + pushtype TONDOWNLOADPROGRESS ; StackCount = 1 + assign Var1, TONDOWNLOADPROGRESS(ONDOWNLOADPROGRESS) + pushtype UnicodeString_2 ; StackCount = 2 + pushtype TSETUPMESSAGEID ; StackCount = 3 + assign Var3, TSETUPMESSAGEID(152) + pushvar Var2 ; StackCount = 4 + call SETUPMESSAGE + pop ; StackCount = 3 + pop ; StackCount = 2 + pushtype UnicodeString_2 ; StackCount = 3 + pushtype TSETUPMESSAGEID ; StackCount = 4 + assign Var4, TSETUPMESSAGEID(252) + pushvar Var3 ; StackCount = 5 + call SETUPMESSAGE + pop ; StackCount = 4 + pop ; StackCount = 3 + pushvar Global3 ; StackCount = 4 + call CREATEDOWNLOADPAGE + pop ; StackCount = 3 + pop ; StackCount = 2 + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("") + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG2LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype BOOLEAN ; StackCount = 1 + ge Var1, Global5, Global6 + jz loc_43b, Var1 + pushtype BOOLEAN ; StackCount = 2 + lt Var2, Global5, Global7 + and Var1, Var2 + pop ; StackCount = 1 +loc_43b: + sfz Var1 + pop ; StackCount = 0 + jf loc_47d + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("500x300.bmp") + call EXTRACTTEMPORARYFILE + pop ; StackCount = 0 + jump loc_5da +loc_47d: + pushtype BOOLEAN ; StackCount = 1 + ge Var1, Global5, Global7 + jz loc_4c0, Var1 + pushtype BOOLEAN ; StackCount = 2 + lt Var2, Global5, Global8 + and Var1, Var2 + pop ; StackCount = 1 +loc_4c0: + sfz Var1 + pop ; StackCount = 0 + jf loc_502 + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("634x382.bmp") + call EXTRACTTEMPORARYFILE + pop ; StackCount = 0 + jump loc_5da +loc_502: + pushtype BOOLEAN ; StackCount = 1 + le Var1, Global5, Global8 + jz loc_545, Var1 + pushtype BOOLEAN ; StackCount = 2 + gt Var2, Global9, Global8 + and Var1, Var2 + pop ; StackCount = 1 +loc_545: + sfz Var1 + pop ; StackCount = 0 + jf loc_587 + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("779x469.bmp") + call EXTRACTTEMPORARYFILE + pop ; StackCount = 0 + jump loc_5da +loc_587: + pushtype BOOLEAN ; StackCount = 1 + ge Var1, Global5, Global9 + sfz Var1 + pop ; StackCount = 0 + jf loc_5da + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("975x585.bmp") + call EXTRACTTEMPORARYFILE + pop ; StackCount = 0 +loc_5da: + pushtype S32 ; StackCount = 1 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 2 + assign Var2, Global3 + pushvar Var1 ; StackCount = 3 + call TWIZARDPAGE->SURFACEHEIGHT + pop ; StackCount = 2 + pop ; StackCount = 1 + sub Var1, S32(40) + pushtype TNEWPROGRESSBAR ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->PROGRESSBAR + pop ; StackCount = 3 + pop ; StackCount = 2 + call TCONTROL->TOP + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype BOOLEAN ; StackCount = 1 + assign Var1, BOOLEAN(0) + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG2LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TCONTROL->VISIBLE + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("") + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG2LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype UnicodeString_2 ; StackCount = 1 + assign Var1, UnicodeString_3("") + pushtype TNEWSTATICTEXT ; StackCount = 2 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 3 + assign Var3, Global3 + pushvar Var2 ; StackCount = 4 + call TOUTPUTPROGRESSWIZARDPAGE->MSG1LABEL + pop ; StackCount = 3 + pop ; StackCount = 2 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype BOOLEAN ; StackCount = 1 + assign Var1, BOOLEAN(1) + pushtype TNEWRADIOBUTTON ; StackCount = 2 + pushtype TWIZARDFORM ; StackCount = 3 + assign Var3, WIZARDFORM + pushvar Var2 ; StackCount = 4 + call TWIZARDFORM->LICENSEACCEPTEDRADIO + pop ; StackCount = 3 + pop ; StackCount = 2 + call TRADIOBUTTON->CHECKED + pop ; StackCount = 1 + pop ; StackCount = 0 + pushtype S32 ; StackCount = 1 + assign Var1, S32(9) + pushtype TFONT ; StackCount = 2 + pushtype TWIZARDFORM ; StackCount = 3 + assign Var3, WIZARDFORM + pushvar Var2 ; StackCount = 4 + call TFORM->FONT + pop ; StackCount = 3 + pop ; StackCount = 2 + call TFONT->SIZE + pop ; StackCount = 1 + pop ; StackCount = 0 + ret + +.function(import) external class(TWIZARDFORM, WIZARDBITMAPIMAGE) __pascal void TWIZARDFORM->WIZARDBITMAPIMAGE(__in __unknown,__in __unknown) + +.function(import) external class(TWIZARDFORM, WIZARDBITMAPIMAGE2) __pascal void TWIZARDFORM->WIZARDBITMAPIMAGE2(__in __unknown,__in __unknown) + +.function(import) external internal returnsval CREATEDOWNLOADPAGE(__in __unknown,__in __unknown,__in __unknown) + +.function(import) external internal returnsval SETUPMESSAGE(__in __unknown) + +.function(import) external class(TOUTPUTPROGRESSWIZARDPAGE, PROGRESSBAR) __pascal void TOUTPUTPROGRESSWIZARDPAGE->PROGRESSBAR(__in __unknown,__in __unknown) + +.function(import) external class(TWIZARDFORM, LICENSEACCEPTEDRADIO) __pascal void TWIZARDFORM->LICENSEACCEPTEDRADIO(__in __unknown,__in __unknown) + +.function(import) external class(TRADIOBUTTON, CHECKED, property) __pascal void TRADIOBUTTON->CHECKED(__in __unknown,__in __unknown) + +.function(import) external class(TFONT, SIZE, property) __pascal void TFONT->SIZE(__in __unknown,__in __unknown) + +.function(export) void ONEMBEDDEDMEDIAPLAYEREVENT(__in S32 Arg1,__in S32 Arg2,__in S32 Arg3) + pushtype S32 ; StackCount = 1 + pushtype S32 ; StackCount = 2 + pushtype S32 ; StackCount = 3 + assign Var3, S32(16777215) + pushtype TPANEL ; StackCount = 4 + assign Var4, Global4 + call TPANEL->COLOR + pop ; StackCount = 3 + pop ; StackCount = 2 + pushtype BOOLEAN ; StackCount = 3 + eq Var3, Arg1, S32(1) + sfz Var3 + pop ; StackCount = 2 + jf loc_877 + pushtype TPANEL ; StackCount = 3 + assign Var3, Global4 + call TCONTROL->HIDE + pop ; StackCount = 2 + pushtype TPANEL ; StackCount = 3 + assign Var3, Global4 + pushvar Var1 ; StackCount = 4 + call TCONTROL->WIDTH + pop ; StackCount = 3 + pop ; StackCount = 2 + pushtype TPANEL ; StackCount = 3 + assign Var3, Global4 + pushvar Var2 ; StackCount = 4 + call TCONTROL->HEIGHT_2 + pop ; StackCount = 3 + pop ; StackCount = 2 + pushtype TCOMPONENT ; StackCount = 3 + assign Var3, Global3 + pushtype U32_2 ; StackCount = 4 + assign Var4, U32_2(35) + pushvar Global10 ; StackCount = 5 + call TCONTROL->CREATE + pop ; StackCount = 4 + pop ; StackCount = 3 + pop ; StackCount = 2 + pushtype S32 ; StackCount = 3 + assign Var3, S32(16777215) + pushtype TBITMAPIMAGE ; StackCount = 4 + assign Var4, Global10 + call TBITMAPIMAGE->BACKCOLOR + pop ; StackCount = 3 + pop ; StackCount = 2 + pushtype TBITMAPIMAGE ; StackCount = 3 + assign Var3, Global10 + call TCONTROL->SHOW + pop ; StackCount = 2 + pushtype S32 ; StackCount = 3 + pushtype TPANEL ; StackCount = 4 + assign Var4, Global4 + pushvar Var3 ; StackCount = 5 + call TCONTROL->WIDTH + pop ; StackCount = 4 + pop ; StackCount = 3 + pushtype TBITMAPIMAGE ; StackCount = 4 + assign Var4, Global10 + call TCONTROL->WIDTH_2 + pop ; StackCount = 3 + pop ; StackCount = 2 + pushtype S32 ; StackCount = 3 + pushtype TPANEL ; StackCount = 4 + assign Var4, Global4 + pushvar Var3 ; StackCount = 5 + call TCONTROL->HEIGHT_2 + pop ; StackCount = 4 + pop ; StackCount = 3 + pushtype TBITMAPIMAGE ; StackCount = 4 + assign Var4, Global10 + call TCONTROL->HEIGHT + pop ; StackCount = 3 + pop ; StackCount = 2 + pushtype BOOLEAN ; StackCount = 3 + ge Var3, Global5, Global6 + jz loc_1d4, Var3 + pushtype BOOLEAN ; StackCount = 4 + lt Var4, Global5, Global7 + and Var3, Var4 + pop ; StackCount = 3 +loc_1d4: + sfz Var3 + pop ; StackCount = 2 + jf loc_33f + pushtype BOOLEAN ; StackCount = 3 + pushtype BOOLEAN ; StackCount = 4 + assign Var4, BOOLEAN(0) + pushtype UnicodeString_2 ; StackCount = 5 + pushtype UnicodeString_2 ; StackCount = 6 + assign Var6, UnicodeString_3("{app}\\500x300.bmp") + pushvar Var5 ; StackCount = 7 + call EXPANDCONSTANT + pop ; StackCount = 6 + pop ; StackCount = 5 + pushtype UnicodeString_2 ; StackCount = 6 + pushtype UnicodeString_2 ; StackCount = 7 + assign Var7, UnicodeString_3("{tmp}\\500x300.bmp") + pushvar Var6 ; StackCount = 8 + call EXPANDCONSTANT + pop ; StackCount = 7 + pop ; StackCount = 6 + pushvar Var3 ; StackCount = 7 + call FILECOPY + pop ; StackCount = 6 + pop ; StackCount = 5 + pop ; StackCount = 4 + pop ; StackCount = 3 + pop ; StackCount = 2 + pushtype UnicodeString_2 ; StackCount = 3 + pushtype UnicodeString_3 ; StackCount = 4 + pushtype UnicodeString_2 ; StackCount = 5 + pushtype UnicodeString_2 ; StackCount = 6 + assign Var6, UnicodeString_3("{app}\\500x300") + pushvar Var5 ; StackCount = 7 + call EXPANDCONSTANT + pop ; StackCount = 6 + pop ; StackCount = 5 + assign Var4, Var5 + pop ; StackCount = 4 + add Var4, UnicodeString_3(".bmp") + assign Var3, Var4 + pop ; StackCount = 3 + pushtype TBITMAP ; StackCount = 4 + pushtype TBITMAPIMAGE ; StackCount = 5 + assign Var5, Global10 + pushvar Var4 ; StackCount = 6 + call TBITMAPIMAGE->BITMAP + pop ; StackCount = 5 + pop ; StackCount = 4 + call TGRAPHIC->LOADFROMFILE + pop ; StackCount = 3 + pop ; StackCount = 2 + jump loc_817 +loc_33f: + pushtype BOOLEAN ; StackCount = 3 + ge Var3, Global5, Global7 + jz loc_382, Var3 + pushtype BOOLEAN ; StackCount = 4 + lt Var4, Global5, Global8 + and Var3, Var4 + pop ; StackCount = 3 +loc_382: + sfz Var3 + pop ; StackCount = 2 + jf loc_4ed + pushtype BOOLEAN ; StackCount = 3 + pushtype BOOLEAN ; StackCount = 4 + assign Var4, BOOLEAN(0) + pushtype UnicodeString_2 ; StackCount = 5 + pushtype UnicodeString_2 ; StackCount = 6 + assign Var6, UnicodeString_3("{app}\\634x382.bmp") + pushvar Var5 ; StackCount = 7 + call EXPANDCONSTANT + pop ; StackCount = 6 + pop ; StackCount = 5 + pushtype UnicodeString_2 ; StackCount = 6 + pushtype UnicodeString_2 ; StackCount = 7 + assign Var7, UnicodeString_3("{tmp}\\634x382.bmp") + pushvar Var6 ; StackCount = 8 + call EXPANDCONSTANT + pop ; StackCount = 7 + pop ; StackCount = 6 + pushvar Var3 ; StackCount = 7 + call FILECOPY + pop ; StackCount = 6 + pop ; StackCount = 5 + pop ; StackCount = 4 + pop ; StackCount = 3 + pop ; StackCount = 2 + pushtype UnicodeString_2 ; StackCount = 3 + pushtype UnicodeString_3 ; StackCount = 4 + pushtype UnicodeString_2 ; StackCount = 5 + pushtype UnicodeString_2 ; StackCount = 6 + assign Var6, UnicodeString_3("{app}\\634x382") + pushvar Var5 ; StackCount = 7 + call EXPANDCONSTANT + pop ; StackCount = 6 + pop ; StackCount = 5 + assign Var4, Var5 + pop ; StackCount = 4 + add Var4, UnicodeString_3(".bmp") + assign Var3, Var4 + pop ; StackCount = 3 + pushtype TBITMAP ; StackCount = 4 + pushtype TBITMAPIMAGE ; StackCount = 5 + assign Var5, Global10 + pushvar Var4 ; StackCount = 6 + call TBITMAPIMAGE->BITMAP + pop ; StackCount = 5 + pop ; StackCount = 4 + call TGRAPHIC->LOADFROMFILE + pop ; StackCount = 3 + pop ; StackCount = 2 + jump loc_817 +loc_4ed: + pushtype BOOLEAN ; StackCount = 3 + le Var3, Global5, Global8 + jz loc_530, Var3 + pushtype BOOLEAN ; StackCount = 4 + gt Var4, Global9, Global8 + and Var3, Var4 + pop ; StackCount = 3 +loc_530: + sfz Var3 + pop ; StackCount = 2 + jf loc_69b + pushtype BOOLEAN ; StackCount = 3 + pushtype BOOLEAN ; StackCount = 4 + assign Var4, BOOLEAN(0) + pushtype UnicodeString_2 ; StackCount = 5 + pushtype UnicodeString_2 ; StackCount = 6 + assign Var6, UnicodeString_3("{app}\\779x469.bmp") + pushvar Var5 ; StackCount = 7 + call EXPANDCONSTANT + pop ; StackCount = 6 + pop ; StackCount = 5 + pushtype UnicodeString_2 ; StackCount = 6 + pushtype UnicodeString_2 ; StackCount = 7 + assign Var7, UnicodeString_3("{tmp}\\779x469.bmp") + pushvar Var6 ; StackCount = 8 + call EXPANDCONSTANT + pop ; StackCount = 7 + pop ; StackCount = 6 + pushvar Var3 ; StackCount = 7 + call FILECOPY + pop ; StackCount = 6 + pop ; StackCount = 5 + pop ; StackCount = 4 + pop ; StackCount = 3 + pop ; StackCount = 2 + pushtype UnicodeString_2 ; StackCount = 3 + pushtype UnicodeString_3 ; StackCount = 4 + pushtype UnicodeString_2 ; StackCount = 5 + pushtype UnicodeString_2 ; StackCount = 6 + assign Var6, UnicodeString_3("{app}\\779x469") + pushvar Var5 ; StackCount = 7 + call EXPANDCONSTANT + pop ; StackCount = 6 + pop ; StackCount = 5 + assign Var4, Var5 + pop ; StackCount = 4 + add Var4, UnicodeString_3(".bmp") + assign Var3, Var4 + pop ; StackCount = 3 + pushtype TBITMAP ; StackCount = 4 + pushtype TBITMAPIMAGE ; StackCount = 5 + assign Var5, Global10 + pushvar Var4 ; StackCount = 6 + call TBITMAPIMAGE->BITMAP + pop ; StackCount = 5 + pop ; StackCount = 4 + call TGRAPHIC->LOADFROMFILE + pop ; StackCount = 3 + pop ; StackCount = 2 + jump loc_817 +loc_69b: + pushtype BOOLEAN ; StackCount = 3 + ge Var3, Global5, Global9 + sfz Var3 + pop ; StackCount = 2 + jf loc_817 + pushtype BOOLEAN ; StackCount = 3 + pushtype BOOLEAN ; StackCount = 4 + assign Var4, BOOLEAN(0) + pushtype UnicodeString_2 ; StackCount = 5 + pushtype UnicodeString_2 ; StackCount = 6 + assign Var6, UnicodeString_3("{app}\\975x585.bmp") + pushvar Var5 ; StackCount = 7 + call EXPANDCONSTANT + pop ; StackCount = 6 + pop ; StackCount = 5 + pushtype UnicodeString_2 ; StackCount = 6 + pushtype UnicodeString_2 ; StackCount = 7 + assign Var7, UnicodeString_3("{tmp}\\975x585.bmp") + pushvar Var6 ; StackCount = 8 + call EXPANDCONSTANT + pop ; StackCount = 7 + pop ; StackCount = 6 + pushvar Var3 ; StackCount = 7 + call FILECOPY + pop ; StackCount = 6 + pop ; StackCount = 5 + pop ; StackCount = 4 + pop ; StackCount = 3 + pop ; StackCount = 2 + pushtype UnicodeString_2 ; StackCount = 3 + pushtype UnicodeString_3 ; StackCount = 4 + pushtype UnicodeString_2 ; StackCount = 5 + pushtype UnicodeString_2 ; StackCount = 6 + assign Var6, UnicodeString_3("{app}\\975x585") + pushvar Var5 ; StackCount = 7 + call EXPANDCONSTANT + pop ; StackCount = 6 + pop ; StackCount = 5 + assign Var4, Var5 + pop ; StackCount = 4 + add Var4, UnicodeString_3(".bmp") + assign Var3, Var4 + pop ; StackCount = 3 + pushtype TBITMAP ; StackCount = 4 + pushtype TBITMAPIMAGE ; StackCount = 5 + assign Var5, Global10 + pushvar Var4 ; StackCount = 6 + call TBITMAPIMAGE->BITMAP + pop ; StackCount = 5 + pop ; StackCount = 4 + call TGRAPHIC->LOADFROMFILE + pop ; StackCount = 3 + pop ; StackCount = 2 +loc_817: + pushtype TWINCONTROL ; StackCount = 3 + pushtype TNEWNOTEBOOKPAGE ; StackCount = 4 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 5 + assign Var5, Global3 + pushvar Var4 ; StackCount = 6 + call TWIZARDPAGE->SURFACE + pop ; StackCount = 5 + pop ; StackCount = 4 + assign Var3, Var4 + pop ; StackCount = 3 + pushtype TBITMAPIMAGE ; StackCount = 4 + assign Var4, Global10 + call TCONTROL->PARENT_2 + pop ; StackCount = 3 + pop ; StackCount = 2 + pushtype TCONTROL ; StackCount = 3 + assign Var3, Global10 + call CENTERINPARENT + pop ; StackCount = 2 +loc_877: + ret + +.function(import) external class(TCONTROL, HIDE) __fastcall void TCONTROL->HIDE() + +.function(import) external class(TCONTROL, HEIGHT) __pascal void TCONTROL->HEIGHT_2(__in __unknown,__in __unknown) + +.function(import) external class(TCONTROL, CREATE) __fastcall returnsval TCONTROL->CREATE(__in __unknown) + +.function(import) external class(TBITMAPIMAGE, BACKCOLOR, property) __pascal void TBITMAPIMAGE->BACKCOLOR(__in __unknown,__in __unknown) + +.function(import) external class(TCONTROL, SHOW) __fastcall void TCONTROL->SHOW() + +.function(import) external internal returnsval FILECOPY(__in __unknown,__in __unknown,__in __unknown) + +.function(import) external class(TWIZARDPAGE, SURFACE) __pascal void TWIZARDPAGE->SURFACE(__in __unknown,__in __unknown) + +.function(import) external class(TCONTROL, PARENT, property) __pascal void TCONTROL->PARENT_2(__in __unknown,__in __unknown) + +.function(export) BOOLEAN NEXTBUTTONCLICK(__in S32 Arg1) + pushtype S32 ; StackCount = 1 + pushtype S32 ; StackCount = 2 + pushtype S32 ; StackCount = 3 + pushtype WideString ; StackCount = 4 + pushtype UnicodeString_2 ; StackCount = 5 + pushtype S32 ; StackCount = 6 + pushtype S32 ; StackCount = 7 + pushtype S32 ; StackCount = 8 + pushtype BOOLEAN ; StackCount = 9 + assign Var9, BOOLEAN(0) + pushtype TBITMAPIMAGE ; StackCount = 10 + pushtype TWIZARDFORM ; StackCount = 11 + assign Var11, WIZARDFORM + pushvar Var10 ; StackCount = 12 + call TWIZARDFORM->WIZARDSMALLBITMAPIMAGE + pop ; StackCount = 11 + pop ; StackCount = 10 + call TCONTROL->VISIBLE + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype BOOLEAN ; StackCount = 9 + eq Var9, Arg1, S32(10) + sfz Var9 + pop ; StackCount = 8 + jf loc_21cd + pushtype BOOLEAN ; StackCount = 9 + assign Var9, BOOLEAN(0) + pushtype TNEWBUTTON ; StackCount = 10 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 11 + assign Var11, Global3 + pushvar Var10 ; StackCount = 12 + call TDOWNLOADWIZARDPAGE->ABORTBUTTON + pop ; StackCount = 11 + pop ; StackCount = 10 + call TCONTROL->VISIBLE + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 9 + assign Var9, Global3 + call TDOWNLOADWIZARDPAGE->SHOW + pop ; StackCount = 8 + pushtype BOOLEAN ; StackCount = 9 + pushtype UnicodeString_2 ; StackCount = 10 + pushtype UnicodeString_2 ; StackCount = 11 + assign Var11, UnicodeString_3("{app}\\") + pushvar Var10 ; StackCount = 12 + call EXPANDCONSTANT + pop ; StackCount = 11 + pop ; StackCount = 10 + pushvar Var9 ; StackCount = 11 + call CREATEDIR + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype BOOLEAN ; StackCount = 9 + pushtype BOOLEAN ; StackCount = 10 + assign Var10, BOOLEAN(0) + pushtype UnicodeString_2 ; StackCount = 11 + pushtype UnicodeString_2 ; StackCount = 12 + assign Var12, UnicodeString_3("{app}\\Animation-with-icon.avi") + pushvar Var11 ; StackCount = 13 + call EXPANDCONSTANT + pop ; StackCount = 12 + pop ; StackCount = 11 + pushtype UnicodeString_2 ; StackCount = 12 + pushtype UnicodeString_2 ; StackCount = 13 + assign Var13, UnicodeString_3("{tmp}\\Animation-with-icon.avi") + pushvar Var12 ; StackCount = 14 + call EXPANDCONSTANT + pop ; StackCount = 13 + pop ; StackCount = 12 + pushvar Var9 ; StackCount = 13 + call FILECOPY + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype UnicodeString_2 ; StackCount = 9 + assign Var9, UnicodeString_3("") + pushtype TNEWSTATICTEXT ; StackCount = 10 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 11 + assign Var11, Global3 + pushvar Var10 ; StackCount = 12 + call TOUTPUTPROGRESSWIZARDPAGE->MSG2LABEL + pop ; StackCount = 11 + pop ; StackCount = 10 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype S32 ; StackCount = 9 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 10 + assign Var10, Global3 + pushvar Var9 ; StackCount = 11 + call TWIZARDPAGE->SURFACEHEIGHT + pop ; StackCount = 10 + pop ; StackCount = 9 + sub Var9, S32(70) + pushtype TNEWSTATICTEXT ; StackCount = 10 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 11 + assign Var11, Global3 + pushvar Var10 ; StackCount = 12 + call TOUTPUTPROGRESSWIZARDPAGE->MSG1LABEL + pop ; StackCount = 11 + pop ; StackCount = 10 + call TCONTROL->TOP + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype S32 ; StackCount = 9 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 10 + assign Var10, Global3 + pushvar Var9 ; StackCount = 11 + call TWIZARDPAGE->SURFACEHEIGHT + pop ; StackCount = 10 + pop ; StackCount = 9 + sub Var9, S32(40) + pushtype TNEWPROGRESSBAR ; StackCount = 10 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 11 + assign Var11, Global3 + pushvar Var10 ; StackCount = 12 + call TOUTPUTPROGRESSWIZARDPAGE->PROGRESSBAR + pop ; StackCount = 11 + pop ; StackCount = 10 + call TCONTROL->TOP + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype TCONTROL ; StackCount = 9 + pushtype TNEWPROGRESSBAR ; StackCount = 10 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 11 + assign Var11, Global3 + pushvar Var10 ; StackCount = 12 + call TOUTPUTPROGRESSWIZARDPAGE->PROGRESSBAR + pop ; StackCount = 11 + pop ; StackCount = 10 + assign Var9, Var10 + pop ; StackCount = 9 + call CENTERINPARENT2 + pop ; StackCount = 8 + pushtype BOOLEAN ; StackCount = 9 + assign Var9, BOOLEAN(0) + pushtype TNEWSTATICTEXT ; StackCount = 10 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 11 + assign Var11, Global3 + pushvar Var10 ; StackCount = 12 + call TOUTPUTPROGRESSWIZARDPAGE->MSG2LABEL + pop ; StackCount = 11 + pop ; StackCount = 10 + call TCONTROL->VISIBLE + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype S32 ; StackCount = 9 + assign Var9, S32(16777215) + pushtype TNEWSTATICTEXT ; StackCount = 10 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 11 + assign Var11, Global3 + pushvar Var10 ; StackCount = 12 + call TOUTPUTPROGRESSWIZARDPAGE->MSG2LABEL + pop ; StackCount = 11 + pop ; StackCount = 10 + call TNEWSTATICTEXT->COLOR + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype UnicodeString_2 ; StackCount = 9 + assign Var9, UnicodeString_3("") + pushtype TNEWSTATICTEXT ; StackCount = 10 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 11 + assign Var11, Global3 + pushvar Var10 ; StackCount = 12 + call TOUTPUTPROGRESSWIZARDPAGE->MSG2LABEL + pop ; StackCount = 11 + pop ; StackCount = 10 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype TCOMPONENT ; StackCount = 9 + assign Var9, Global3 + pushtype U32_2 ; StackCount = 10 + assign Var10, U32_2(34) + pushvar Global4 ; StackCount = 11 + call TCONTROL->CREATE + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype TPANELBEVEL ; StackCount = 9 + assign Var9, TPANELBEVEL(0) + pushtype TPANEL ; StackCount = 10 + assign Var10, Global4 + call TPANEL->BEVELOUTER + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype TWINCONTROL ; StackCount = 9 + pushtype TNEWNOTEBOOKPAGE ; StackCount = 10 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 11 + assign Var11, Global3 + pushvar Var10 ; StackCount = 12 + call TWIZARDPAGE->SURFACE + pop ; StackCount = 11 + pop ; StackCount = 10 + assign Var9, Var10 + pop ; StackCount = 9 + pushtype TPANEL ; StackCount = 10 + assign Var10, Global4 + call TCONTROL->PARENT_2 + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype TCONTROL ; StackCount = 9 + assign Var9, Global4 + call CENTERINPARENT + pop ; StackCount = 8 + pushtype TPANEL ; StackCount = 9 + assign Var9, Global4 + pushvar Var2 ; StackCount = 10 + call TCONTROL->WIDTH + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype TPANEL ; StackCount = 9 + assign Var9, Global4 + pushvar Var3 ; StackCount = 10 + call TCONTROL->HEIGHT_2 + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype S32 ; StackCount = 9 + assign Var9, S32(16777215) + pushtype TPANEL ; StackCount = 10 + assign Var10, Global4 + call TPANEL->COLOR + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype UnicodeString_3 ; StackCount = 9 + pushtype UnicodeString_2 ; StackCount = 10 + pushtype UnicodeString_2 ; StackCount = 11 + assign Var11, UnicodeString_3("{app}") + pushvar Var10 ; StackCount = 12 + call EXPANDCONSTANT + pop ; StackCount = 11 + pop ; StackCount = 10 + assign Var9, Var10 + pop ; StackCount = 9 + add Var9, UnicodeString_3("\\Animation-with-icon.avi") + assign Var5, Var9 + pop ; StackCount = 8 + pushtype BOOLEAN ; StackCount = 9 + pushvar Var9 ; StackCount = 10 + call ISWIN64 + pop ; StackCount = 9 + sfz Var9 + pop ; StackCount = 8 + jf loc_720 + pushtype UnicodeString_2 ; StackCount = 9 + assign Var9, UnicodeString_3("fa127e707421be7a57ee781b9bf25501241cbf963ec0ddd12a3937bf602837d7") + pushtype UnicodeString_2 ; StackCount = 10 + assign Var10, UnicodeString_3("64bit_Download.zip") + pushtype UnicodeString_2 ; StackCount = 11 + assign Var11, UnicodeString_3("https://cloud.stellarinfo.com/upload/SDR_v10_2/10_2_64.zip") + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 12 + assign Var12, Global3 + call TDOWNLOADWIZARDPAGE->ADD + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 + jump loc_88d +loc_720: + pushtype UnicodeString_2 ; StackCount = 9 + assign Var9, UnicodeString_3("caab93a30c322b5696d03da9819f665309f04cc6bd2ede7e5ac55bf27937e1db") + pushtype UnicodeString_2 ; StackCount = 10 + assign Var10, UnicodeString_3("32bit_Download.zip") + pushtype UnicodeString_2 ; StackCount = 11 + assign Var11, UnicodeString_3("https://cloud.stellarinfo.com/upload/SDR_v10_2/10_2_32.zip") + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 12 + assign Var12, Global3 + call TDOWNLOADWIZARDPAGE->ADD + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 +loc_88d: + starteh loc_219e, null, null, loc_21b6 + starteh null, loc_102f, null, loc_219c + pushtype UnicodeString_2 ; StackCount = 9 + assign Var9, UnicodeString_3("") + pushtype UnicodeString_2 ; StackCount = 10 + assign Var10, UnicodeString_3("") + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 11 + assign Var11, Global3 + call TOUTPUTPROGRESSWIZARDPAGE->SETTEXT + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype TCONTROL ; StackCount = 9 + assign Var9, Global4 + call CENTERINPARENT + pop ; StackCount = 8 + pushtype TPANEL ; StackCount = 9 + assign Var9, Global4 + pushvar Var2 ; StackCount = 10 + call TCONTROL->WIDTH + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype TPANEL ; StackCount = 9 + assign Var9, Global4 + pushvar Var3 ; StackCount = 10 + call TCONTROL->HEIGHT_2 + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype TPANEL ; StackCount = 9 + assign Var9, Global4 + call TCONTROL->SHOW + pop ; StackCount = 8 + pushtype S32 ; StackCount = 9 + assign Var9, S32(16777215) + pushtype TPANEL ; StackCount = 10 + assign Var10, Global4 + call TPANEL->COLOR + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype BOOLEAN ; StackCount = 9 + assign Var9, BOOLEAN(0) + pushtype TNEWBUTTON ; StackCount = 10 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 11 + assign Var11, Global3 + pushvar Var10 ; StackCount = 12 + call TDOWNLOADWIZARDPAGE->ABORTBUTTON + pop ; StackCount = 11 + pop ; StackCount = 10 + call TCONTROL->VISIBLE + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype BOOLEAN ; StackCount = 9 + pushtype Type36 ; StackCount = 10 + assign Var10, Type36(ONEMBEDDEDMEDIAPLAYEREVENT) + pushtype Pointer ; StackCount = 11 + setptr Var11, Var3 + pushtype Pointer ; StackCount = 12 + setptr Var12, Var2 + pushtype S32 ; StackCount = 13 + pushtype TPANEL ; StackCount = 14 + assign Var14, Global4 + pushvar Var13 ; StackCount = 15 + call TWINCONTROL->HANDLE + pop ; StackCount = 14 + pop ; StackCount = 13 + pushtype WideString ; StackCount = 14 + assign Var14, Var5 + pushvar Var9 ; StackCount = 15 + call files:mediaplayer.dll!DSInitializeVideoFile + pop ; StackCount = 14 + pop ; StackCount = 13 + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype S32 ; StackCount = 9 + assign Var9, S32(16777215) + pushtype TPANEL ; StackCount = 10 + assign Var10, Global4 + call TPANEL->COLOR + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype BOOLEAN ; StackCount = 9 + pushvar Var9 ; StackCount = 10 + call files:mediaplayer.dll!DSPlayMediaFile + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype S64 ; StackCount = 9 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 10 + assign Var10, Global3 + pushvar Var9 ; StackCount = 11 + call TDOWNLOADWIZARDPAGE->DOWNLOAD + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype UnicodeString_2 ; StackCount = 9 + assign Var9, UnicodeString_3("") + pushtype TNEWSTATICTEXT ; StackCount = 10 + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 11 + assign Var11, Global3 + pushvar Var10 ; StackCount = 12 + call TOUTPUTPROGRESSWIZARDPAGE->MSG2LABEL + pop ; StackCount = 11 + pop ; StackCount = 10 + call TNEWSTATICTEXT->CAPTION + pop ; StackCount = 9 + pop ; StackCount = 8 + assign RetVal, BOOLEAN(1) + pushtype BOOLEAN ; StackCount = 9 + pushvar Var9 ; StackCount = 10 + call ISWIN64 + pop ; StackCount = 9 + sfz Var9 + pop ; StackCount = 8 + jf loc_d98 + pushtype BOOLEAN ; StackCount = 9 + pushtype BOOLEAN ; StackCount = 10 + assign Var10, BOOLEAN(0) + pushtype UnicodeString_2 ; StackCount = 11 + pushtype UnicodeString_2 ; StackCount = 12 + assign Var12, UnicodeString_3("{app}\\64bit_Download.zip") + pushvar Var11 ; StackCount = 13 + call EXPANDCONSTANT + pop ; StackCount = 12 + pop ; StackCount = 11 + pushtype UnicodeString_2 ; StackCount = 12 + pushtype UnicodeString_2 ; StackCount = 13 + assign Var13, UnicodeString_3("{tmp}\\64bit_Download.zip") + pushvar Var12 ; StackCount = 14 + call EXPANDCONSTANT + pop ; StackCount = 13 + pop ; StackCount = 12 + pushvar Var9 ; StackCount = 13 + call FILECOPY + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype String_3 ; StackCount = 9 + pushtype UnicodeString_2 ; StackCount = 10 + pushtype UnicodeString_2 ; StackCount = 11 + assign Var11, UnicodeString_3("{app}\\") + pushvar Var10 ; StackCount = 12 + call EXPANDCONSTANT + pop ; StackCount = 11 + pop ; StackCount = 10 + assign Var9, Var10 + pop ; StackCount = 9 + pushtype String_3 ; StackCount = 10 + pushtype UnicodeString_2 ; StackCount = 11 + pushtype UnicodeString_2 ; StackCount = 12 + assign Var12, UnicodeString_3("{app}\\64bit_Download.zip") + pushvar Var11 ; StackCount = 13 + call EXPANDCONSTANT + pop ; StackCount = 12 + pop ; StackCount = 11 + assign Var10, Var11 + pop ; StackCount = 10 + call UNZIP + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype BOOLEAN ; StackCount = 9 + pushtype Pointer ; StackCount = 10 + setptr Var10, Var1 + pushtype TEXECWAIT ; StackCount = 11 + assign Var11, TEXECWAIT(1) + pushtype S32 ; StackCount = 12 + assign Var12, S32(0) + pushtype UnicodeString_2 ; StackCount = 13 + assign Var13, UnicodeString_3("") + pushtype UnicodeString_2 ; StackCount = 14 + assign Var14, UnicodeString_3("/verysilent") + pushtype UnicodeString_2 ; StackCount = 15 + pushtype UnicodeString_2 ; StackCount = 16 + assign Var16, UnicodeString_3("{app}\\K-Lite_Codec_Pack_1375_Basic.exe") + pushvar Var15 ; StackCount = 17 + call EXPANDCONSTANT + pop ; StackCount = 16 + pop ; StackCount = 15 + pushtype UnicodeString_2 ; StackCount = 16 + assign Var16, UnicodeString_3("") + pushvar Var9 ; StackCount = 17 + call SHELLEXEC + pop ; StackCount = 16 + pop ; StackCount = 15 + pop ; StackCount = 14 + pop ; StackCount = 13 + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 + jump loc_102d +loc_d98: + pushtype BOOLEAN ; StackCount = 9 + pushtype BOOLEAN ; StackCount = 10 + assign Var10, BOOLEAN(0) + pushtype UnicodeString_2 ; StackCount = 11 + pushtype UnicodeString_2 ; StackCount = 12 + assign Var12, UnicodeString_3("{app}\\32bit_Download.zip") + pushvar Var11 ; StackCount = 13 + call EXPANDCONSTANT + pop ; StackCount = 12 + pop ; StackCount = 11 + pushtype UnicodeString_2 ; StackCount = 12 + pushtype UnicodeString_2 ; StackCount = 13 + assign Var13, UnicodeString_3("{tmp}\\32bit_Download.zip") + pushvar Var12 ; StackCount = 14 + call EXPANDCONSTANT + pop ; StackCount = 13 + pop ; StackCount = 12 + pushvar Var9 ; StackCount = 13 + call FILECOPY + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype String_3 ; StackCount = 9 + pushtype UnicodeString_2 ; StackCount = 10 + pushtype UnicodeString_2 ; StackCount = 11 + assign Var11, UnicodeString_3("{app}\\") + pushvar Var10 ; StackCount = 12 + call EXPANDCONSTANT + pop ; StackCount = 11 + pop ; StackCount = 10 + assign Var9, Var10 + pop ; StackCount = 9 + pushtype String_3 ; StackCount = 10 + pushtype UnicodeString_2 ; StackCount = 11 + pushtype UnicodeString_2 ; StackCount = 12 + assign Var12, UnicodeString_3("{app}\\32bit_Download.zip") + pushvar Var11 ; StackCount = 13 + call EXPANDCONSTANT + pop ; StackCount = 12 + pop ; StackCount = 11 + assign Var10, Var11 + pop ; StackCount = 10 + call UNZIP + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype BOOLEAN ; StackCount = 9 + pushtype Pointer ; StackCount = 10 + setptr Var10, Var1 + pushtype TEXECWAIT ; StackCount = 11 + assign Var11, TEXECWAIT(1) + pushtype S32 ; StackCount = 12 + assign Var12, S32(0) + pushtype UnicodeString_2 ; StackCount = 13 + assign Var13, UnicodeString_3("") + pushtype UnicodeString_2 ; StackCount = 14 + assign Var14, UnicodeString_3("/verysilent") + pushtype UnicodeString_2 ; StackCount = 15 + pushtype UnicodeString_2 ; StackCount = 16 + assign Var16, UnicodeString_3("{app}\\K-Lite_Codec_Pack_1375_Basic.exe") + pushvar Var15 ; StackCount = 17 + call EXPANDCONSTANT + pop ; StackCount = 16 + pop ; StackCount = 15 + pushtype UnicodeString_2 ; StackCount = 16 + assign Var16, UnicodeString_3("") + pushvar Var9 ; StackCount = 17 + call SHELLEXEC + pop ; StackCount = 16 + pop ; StackCount = 15 + pop ; StackCount = 14 + pop ; StackCount = 13 + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 +loc_102d: + endtry +loc_102f: + pushtype BOOLEAN ; StackCount = 9 + pushtype UnicodeString_2 ; StackCount = 10 + pushvar Var10 ; StackCount = 11 + call ACTIVELANGUAGE + pop ; StackCount = 10 + eq Var9, Var10, UnicodeString_3("en") + pop ; StackCount = 9 + sfz Var9 + pop ; StackCount = 8 + jf loc_11ad + pushtype S32 ; StackCount = 9 + assign Var9, S32(4) + pushtype S32 ; StackCount = 10 + assign Var10, S32(5) + pushtype TMSGBOXTYPE ; StackCount = 11 + assign Var11, TMSGBOXTYPE(3) + pushtype UnicodeString_2 ; StackCount = 12 + assign Var12, UnicodeString_3("Installer needs to download additional components. Connect your computer to the internet to complete installation.") + pushvar Var7 ; StackCount = 13 + call SUPPRESSIBLEMSGBOX + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 +loc_11ad: + pushtype BOOLEAN ; StackCount = 9 + pushtype UnicodeString_2 ; StackCount = 10 + pushvar Var10 ; StackCount = 11 + call ACTIVELANGUAGE + pop ; StackCount = 10 + eq Var9, Var10, UnicodeString_3("fr") + pop ; StackCount = 9 + sfz Var9 + pop ; StackCount = 8 + jf loc_1351 + pushtype S32 ; StackCount = 9 + assign Var9, S32(4) + pushtype S32 ; StackCount = 10 + assign Var10, S32(5) + pushtype TMSGBOXTYPE ; StackCount = 11 + assign Var11, TMSGBOXTYPE(3) + pushtype UnicodeString_2 ; StackCount = 12 + assign Var12, UnicodeString_3("L’installateur doit télécharger des composants supplémentaires. Connectez votre ordinateur à Internet pour une installation complète.") + pushvar Var7 ; StackCount = 13 + call SUPPRESSIBLEMSGBOX + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 +loc_1351: + pushtype BOOLEAN ; StackCount = 9 + pushtype UnicodeString_2 ; StackCount = 10 + pushvar Var10 ; StackCount = 11 + call ACTIVELANGUAGE + pop ; StackCount = 10 + eq Var9, Var10, UnicodeString_3("de") + pop ; StackCount = 9 + sfz Var9 + pop ; StackCount = 8 + jf loc_1501 + pushtype S32 ; StackCount = 9 + assign Var9, S32(4) + pushtype S32 ; StackCount = 10 + assign Var10, S32(5) + pushtype TMSGBOXTYPE ; StackCount = 11 + assign Var11, TMSGBOXTYPE(3) + pushtype UnicodeString_2 ; StackCount = 12 + assign Var12, UnicodeString_3("Der Installer muss zusätzliche Komponenten herunterladen. Verbinden Sie Ihren Computer mit dem Internet, um die Installation abzuschließen.") + pushvar Var7 ; StackCount = 13 + call SUPPRESSIBLEMSGBOX + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 +loc_1501: + pushtype BOOLEAN ; StackCount = 9 + pushtype UnicodeString_2 ; StackCount = 10 + pushvar Var10 ; StackCount = 11 + call ACTIVELANGUAGE + pop ; StackCount = 10 + eq Var9, Var10, UnicodeString_3("it") + pop ; StackCount = 9 + sfz Var9 + pop ; StackCount = 8 + jf loc_1677 + pushtype S32 ; StackCount = 9 + assign Var9, S32(4) + pushtype S32 ; StackCount = 10 + assign Var10, S32(5) + pushtype TMSGBOXTYPE ; StackCount = 11 + assign Var11, TMSGBOXTYPE(3) + pushtype UnicodeString_2 ; StackCount = 12 + assign Var12, UnicodeString_3("L’impianto deve scaricare altri componenti. Collega il tuo computer a Internet per completare l’installazione.") + pushvar Var7 ; StackCount = 13 + call SUPPRESSIBLEMSGBOX + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 +loc_1677: + pushtype BOOLEAN ; StackCount = 9 + pushtype UnicodeString_2 ; StackCount = 10 + pushvar Var10 ; StackCount = 11 + call ACTIVELANGUAGE + pop ; StackCount = 10 + eq Var9, Var10, UnicodeString_3("es") + pop ; StackCount = 9 + sfz Var9 + pop ; StackCount = 8 + jf loc_1801 + pushtype S32 ; StackCount = 9 + assign Var9, S32(4) + pushtype S32 ; StackCount = 10 + assign Var10, S32(5) + pushtype TMSGBOXTYPE ; StackCount = 11 + assign Var11, TMSGBOXTYPE(3) + pushtype UnicodeString_2 ; StackCount = 12 + assign Var12, UnicodeString_3("El instalador necesita descargar componentes adicionales. Conecta tu ordenador a Internet para completar la instalación.") + pushvar Var7 ; StackCount = 13 + call SUPPRESSIBLEMSGBOX + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 +loc_1801: + pushtype BOOLEAN ; StackCount = 9 + pushtype UnicodeString_2 ; StackCount = 10 + pushvar Var10 ; StackCount = 11 + call ACTIVELANGUAGE + pop ; StackCount = 10 + eq Var9, Var10, UnicodeString_3("jp") + pop ; StackCount = 9 + sfz Var9 + pop ; StackCount = 8 + jf loc_1923 + pushtype S32 ; StackCount = 9 + assign Var9, S32(4) + pushtype S32 ; StackCount = 10 + assign Var10, S32(5) + pushtype TMSGBOXTYPE ; StackCount = 11 + assign Var11, TMSGBOXTYPE(3) + pushtype UnicodeString_2 ; StackCount = 12 + assign Var12, UnicodeString_3("インストーラーは追加のコンポーネントをダウンロードする必要があります.コンピュータをインターネットに接続して、インストールを完了します。") + pushvar Var7 ; StackCount = 13 + call SUPPRESSIBLEMSGBOX + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 +loc_1923: + pushtype BOOLEAN ; StackCount = 9 + pushtype UnicodeString_2 ; StackCount = 10 + pushvar Var10 ; StackCount = 11 + call ACTIVELANGUAGE + pop ; StackCount = 10 + eq Var9, Var10, UnicodeString_3("ko") + pop ; StackCount = 9 + sfz Var9 + pop ; StackCount = 8 + jf loc_1a1d + pushtype S32 ; StackCount = 9 + assign Var9, S32(4) + pushtype S32 ; StackCount = 10 + assign Var10, S32(5) + pushtype TMSGBOXTYPE ; StackCount = 11 + assign Var11, TMSGBOXTYPE(3) + pushtype UnicodeString_2 ; StackCount = 12 + assign Var12, UnicodeString_3("추가 구성 요소를 다운로드 해야 합니다.설치를 완료하려면 컴퓨터를 인터넷에 연결합니다.") + pushvar Var7 ; StackCount = 13 + call SUPPRESSIBLEMSGBOX + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 +loc_1a1d: + pushtype BOOLEAN ; StackCount = 9 + eq Var9, Var7, S32(4) + sfz Var9 + pop ; StackCount = 8 + jf loc_1a44 +loc_1a44: + pushtype BOOLEAN ; StackCount = 9 + eq Var9, Var7, S32(2) + sfz Var9 + pop ; StackCount = 8 + jf loc_218e + pushtype BOOLEAN ; StackCount = 9 + pushtype UnicodeString_2 ; StackCount = 10 + pushvar Var10 ; StackCount = 11 + call ACTIVELANGUAGE + pop ; StackCount = 10 + eq Var9, Var10, UnicodeString_3("en") + pop ; StackCount = 9 + sfz Var9 + pop ; StackCount = 8 + jf loc_1b63 + pushtype S32 ; StackCount = 9 + assign Var9, S32(7) + pushtype S32 ; StackCount = 10 + assign Var10, S32(4) + pushtype TMSGBOXTYPE ; StackCount = 11 + assign Var11, TMSGBOXTYPE(1) + pushtype UnicodeString_2 ; StackCount = 12 + assign Var12, UnicodeString_3("Do you want to cancel the installation process?") + pushvar Var8 ; StackCount = 13 + call SUPPRESSIBLEMSGBOX + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 +loc_1b63: + pushtype BOOLEAN ; StackCount = 9 + pushtype UnicodeString_2 ; StackCount = 10 + pushvar Var10 ; StackCount = 11 + call ACTIVELANGUAGE + pop ; StackCount = 10 + eq Var9, Var10, UnicodeString_3("fr") + pop ; StackCount = 9 + sfz Var9 + pop ; StackCount = 8 + jf loc_1c5d + pushtype S32 ; StackCount = 9 + assign Var9, S32(7) + pushtype S32 ; StackCount = 10 + assign Var10, S32(4) + pushtype TMSGBOXTYPE ; StackCount = 11 + assign Var11, TMSGBOXTYPE(1) + pushtype UnicodeString_2 ; StackCount = 12 + assign Var12, UnicodeString_3("Voulez-vous annuler le processus d’installation?") + pushvar Var8 ; StackCount = 13 + call SUPPRESSIBLEMSGBOX + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 +loc_1c5d: + pushtype BOOLEAN ; StackCount = 9 + pushtype UnicodeString_2 ; StackCount = 10 + pushvar Var10 ; StackCount = 11 + call ACTIVELANGUAGE + pop ; StackCount = 10 + eq Var9, Var10, UnicodeString_3("de") + pop ; StackCount = 9 + sfz Var9 + pop ; StackCount = 8 + jf loc_1d55 + pushtype S32 ; StackCount = 9 + assign Var9, S32(7) + pushtype S32 ; StackCount = 10 + assign Var10, S32(4) + pushtype TMSGBOXTYPE ; StackCount = 11 + assign Var11, TMSGBOXTYPE(1) + pushtype UnicodeString_2 ; StackCount = 12 + assign Var12, UnicodeString_3("Möchtest du den Installationsprozess abbrechen?") + pushvar Var8 ; StackCount = 13 + call SUPPRESSIBLEMSGBOX + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 +loc_1d55: + pushtype BOOLEAN ; StackCount = 9 + pushtype UnicodeString_2 ; StackCount = 10 + pushvar Var10 ; StackCount = 11 + call ACTIVELANGUAGE + pop ; StackCount = 10 + eq Var9, Var10, UnicodeString_3("it") + pop ; StackCount = 9 + sfz Var9 + pop ; StackCount = 8 + jf loc_1e49 + pushtype S32 ; StackCount = 9 + assign Var9, S32(7) + pushtype S32 ; StackCount = 10 + assign Var10, S32(4) + pushtype TMSGBOXTYPE ; StackCount = 11 + assign Var11, TMSGBOXTYPE(1) + pushtype UnicodeString_2 ; StackCount = 12 + assign Var12, UnicodeString_3("Vuole annullare il processo di installazione?") + pushvar Var8 ; StackCount = 13 + call SUPPRESSIBLEMSGBOX + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 +loc_1e49: + pushtype BOOLEAN ; StackCount = 9 + pushtype UnicodeString_2 ; StackCount = 10 + pushvar Var10 ; StackCount = 11 + call ACTIVELANGUAGE + pop ; StackCount = 10 + eq Var9, Var10, UnicodeString_3("es") + pop ; StackCount = 9 + sfz Var9 + pop ; StackCount = 8 + jf loc_1f37 + pushtype S32 ; StackCount = 9 + assign Var9, S32(7) + pushtype S32 ; StackCount = 10 + assign Var10, S32(4) + pushtype TMSGBOXTYPE ; StackCount = 11 + assign Var11, TMSGBOXTYPE(1) + pushtype UnicodeString_2 ; StackCount = 12 + assign Var12, UnicodeString_3("¿Desea cancelar el proceso de instalación?") + pushvar Var8 ; StackCount = 13 + call SUPPRESSIBLEMSGBOX + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 +loc_1f37: + pushtype BOOLEAN ; StackCount = 9 + pushtype UnicodeString_2 ; StackCount = 10 + pushvar Var10 ; StackCount = 11 + call ACTIVELANGUAGE + pop ; StackCount = 10 + eq Var9, Var10, UnicodeString_3("jp") + pop ; StackCount = 9 + sfz Var9 + pop ; StackCount = 8 + jf loc_1ffb + pushtype S32 ; StackCount = 9 + assign Var9, S32(7) + pushtype S32 ; StackCount = 10 + assign Var10, S32(4) + pushtype TMSGBOXTYPE ; StackCount = 11 + assign Var11, TMSGBOXTYPE(1) + pushtype UnicodeString_2 ; StackCount = 12 + assign Var12, UnicodeString_3("インストールプロセスをキャンセルしますか?") + pushvar Var8 ; StackCount = 13 + call SUPPRESSIBLEMSGBOX + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 +loc_1ffb: + pushtype BOOLEAN ; StackCount = 9 + pushtype UnicodeString_2 ; StackCount = 10 + pushvar Var10 ; StackCount = 11 + call ACTIVELANGUAGE + pop ; StackCount = 10 + eq Var9, Var10, UnicodeString_3("ko") + pop ; StackCount = 9 + sfz Var9 + pop ; StackCount = 8 + jf loc_20bb + pushtype S32 ; StackCount = 9 + assign Var9, S32(7) + pushtype S32 ; StackCount = 10 + assign Var10, S32(4) + pushtype TMSGBOXTYPE ; StackCount = 11 + assign Var11, TMSGBOXTYPE(1) + pushtype UnicodeString_2 ; StackCount = 12 + assign Var12, UnicodeString_3("설치 프로세스를 취소 하시겠습니까?") + pushvar Var8 ; StackCount = 13 + call SUPPRESSIBLEMSGBOX + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 +loc_20bb: + pushtype BOOLEAN ; StackCount = 9 + eq Var9, Var8, S32(6) + sfz Var9 + pop ; StackCount = 8 + jf loc_218e + pushtype BOOLEAN ; StackCount = 9 + pushtype BOOLEAN ; StackCount = 10 + assign Var10, BOOLEAN(1) + pushtype BOOLEAN ; StackCount = 11 + assign Var11, BOOLEAN(1) + pushtype BOOLEAN ; StackCount = 12 + assign Var12, BOOLEAN(1) + pushtype UnicodeString_2 ; StackCount = 13 + pushtype UnicodeString_2 ; StackCount = 14 + pushtype UnicodeString_2 ; StackCount = 15 + assign Var15, UnicodeString_3("{app}\\") + pushvar Var14 ; StackCount = 16 + call EXPANDCONSTANT + pop ; StackCount = 15 + pop ; StackCount = 14 + pushvar Var13 ; StackCount = 15 + call EXTRACTFILEDIR + pop ; StackCount = 14 + pop ; StackCount = 13 + pushvar Var9 ; StackCount = 14 + call DELTREE + pop ; StackCount = 13 + pop ; StackCount = 12 + pop ; StackCount = 11 + pop ; StackCount = 10 + pop ; StackCount = 9 + pop ; StackCount = 8 + pushtype S32 ; StackCount = 9 + assign Var9, S32(9) + call kernel32.dll!ExitProcess + pop ; StackCount = 8 + jump loc_218e +loc_218e: + assign RetVal, BOOLEAN(0) + endcatch +loc_219c: + endtry +loc_219e: + pushtype TDOWNLOADWIZARDPAGE ; StackCount = 9 + assign Var9, Global3 + call TOUTPUTPROGRESSWIZARDPAGE->HIDE + pop ; StackCount = 8 + endfinally +loc_21b6: + pushtype BOOLEAN ; StackCount = 9 + pushvar Var9 ; StackCount = 10 + call files:mediaplayer.dll!DSStopMediaPlay + pop ; StackCount = 9 + pop ; StackCount = 8 + jump loc_21d9 +loc_21cd: + assign RetVal, BOOLEAN(1) +loc_21d9: + ret + +.function(import) external class(TWIZARDFORM, WIZARDSMALLBITMAPIMAGE) __pascal void TWIZARDFORM->WIZARDSMALLBITMAPIMAGE(__in __unknown,__in __unknown) + +.function(import) external class(TDOWNLOADWIZARDPAGE, SHOW) __fastcall void TDOWNLOADWIZARDPAGE->SHOW() + +.function(import) external internal returnsval CREATEDIR(__in __unknown) + +.function(import) external class(TNEWSTATICTEXT, COLOR, property) __pascal void TNEWSTATICTEXT->COLOR(__in __unknown,__in __unknown) + +.function(import) external class(TPANEL, BEVELOUTER, property) __pascal void TPANEL->BEVELOUTER(__in __unknown,__in __unknown) + +.function(import) external internal returnsval ISWIN64() + +.function(import) external class(TDOWNLOADWIZARDPAGE, ADD) __fastcall void TDOWNLOADWIZARDPAGE->ADD(__in __unknown,__in __unknown,__in __unknown) + +.function(import) external class(TOUTPUTPROGRESSWIZARDPAGE, SETTEXT) __fastcall void TOUTPUTPROGRESSWIZARDPAGE->SETTEXT(__in __unknown,__in __unknown) + +.function(import) external class(TWINCONTROL, HANDLE) __pascal void TWINCONTROL->HANDLE(__in __unknown,__in __unknown) + +.function(import) external class(TDOWNLOADWIZARDPAGE, DOWNLOAD) __fastcall returnsval TDOWNLOADWIZARDPAGE->DOWNLOAD() + +.function(import) external internal returnsval SHELLEXEC(__in __unknown,__in __unknown,__in __unknown,__in __unknown,__in __unknown,__in __unknown,__out __unknown) + +.function(import) external internal returnsval SUPPRESSIBLEMSGBOX(__in __unknown,__in __unknown,__in __unknown,__in __unknown) + +.function(import) external internal returnsval DELTREE(__in __unknown,__in __unknown,__in __unknown,__in __unknown) + +.function(import) external internal returnsval EXTRACTFILEDIR(__in __unknown) + +.function(import) external class(TOUTPUTPROGRESSWIZARDPAGE, HIDE) __fastcall void TOUTPUTPROGRESSWIZARDPAGE->HIDE() + +.function(export) void CURPAGECHANGED(__in S32 Arg1) + pushtype BOOLEAN ; StackCount = 1 + pushtype UnicodeString_2 ; StackCount = 2 + pushtype UnicodeString_2 ; StackCount = 3 + assign Var3, UnicodeString_3("{tmp}\\64bit_Download.zip") + pushvar Var2 ; StackCount = 4 + call EXPANDCONSTANT + pop ; StackCount = 3 + pop ; StackCount = 2 + pushvar Var1 ; StackCount = 3 + call FILEEXISTS + pop ; StackCount = 2 + pop ; StackCount = 1 + setz Var1 + sfz Var1 + pop ; StackCount = 0 + jf loc_382 + pushtype BOOLEAN ; StackCount = 1 + pushtype UnicodeString_2 ; StackCount = 2 + pushtype UnicodeString_2 ; StackCount = 3 + assign Var3, UnicodeString_3("{tmp}\\32bit_Download.zip") + pushvar Var2 ; StackCount = 4 + call EXPANDCONSTANT + pop ; StackCount = 3 + pop ; StackCount = 2 + pushvar Var1 ; StackCount = 3 + call FILEEXISTS + pop ; StackCount = 2 + pop ; StackCount = 1 + setz Var1 + sfz Var1 + pop ; StackCount = 0 + jf loc_382 + pushtype S32 ; StackCount = 1 + assign Var1, Arg1 + pushtype BOOLEAN ; StackCount = 2 + eq Var2, S32(8), Var1 + jz loc_197, Var2 + pushtype TNOTIFYEVENT ; StackCount = 3 + pushtype TNEWBUTTON ; StackCount = 4 + pushtype TWIZARDFORM ; StackCount = 5 + assign Var5, WIZARDFORM + pushvar Var4 ; StackCount = 6 + call TWIZARDFORM->NEXTBUTTON + pop ; StackCount = 5 + pop ; StackCount = 4 + pushvar Var3 ; StackCount = 5 + call TBUTTON->ONCLICK + pop ; StackCount = 4 + pop ; StackCount = 3 + pushtype TOBJECT ; StackCount = 4 + pushtype TOBJECT ; StackCount = 5 + pushtype Pointer ; StackCount = 6 + setptr Var6, Var5 + call Class->SetNil + pop ; StackCount = 5 + assign Var4, Var5 + pop ; StackCount = 4 + callvar Var3 ; StackCount = 5 + pop ; StackCount = 4 + pop ; StackCount = 3 + jump loc_197 +loc_197: + pop ; StackCount = 2 + pop ; StackCount = 1 + pushtype S32 ; StackCount = 2 + assign Var1, Arg1 + pushtype BOOLEAN ; StackCount = 3 + eq Var2, S32(9), Var1 + jz loc_23a, Var2 + pushtype TNOTIFYEVENT ; StackCount = 4 + pushtype TNEWBUTTON ; StackCount = 5 + pushtype TWIZARDFORM ; StackCount = 6 + assign Var5, WIZARDFORM + pushvar Var4 ; StackCount = 7 + call TWIZARDFORM->NEXTBUTTON + pop ; StackCount = 6 + pop ; StackCount = 5 + pushvar Var3 ; StackCount = 6 + call TBUTTON->ONCLICK + pop ; StackCount = 5 + pop ; StackCount = 4 + pushtype TOBJECT ; StackCount = 5 + pushtype TOBJECT ; StackCount = 6 + pushtype Pointer ; StackCount = 7 + setptr Var6, Var5 + call Class->SetNil + pop ; StackCount = 6 + assign Var4, Var5 + pop ; StackCount = 5 + callvar Var3 ; StackCount = 6 + pop ; StackCount = 5 + pop ; StackCount = 4 + jump loc_23a +loc_23a: + pop ; StackCount = 3 + pop ; StackCount = 2 + pushtype S32 ; StackCount = 3 + assign Var1, Arg1 + pushtype BOOLEAN ; StackCount = 4 + eq Var2, S32(10), Var1 + jz loc_2dd, Var2 + pushtype TNOTIFYEVENT ; StackCount = 5 + pushtype TNEWBUTTON ; StackCount = 6 + pushtype TWIZARDFORM ; StackCount = 7 + assign Var5, WIZARDFORM + pushvar Var4 ; StackCount = 8 + call TWIZARDFORM->NEXTBUTTON + pop ; StackCount = 7 + pop ; StackCount = 6 + pushvar Var3 ; StackCount = 7 + call TBUTTON->ONCLICK + pop ; StackCount = 6 + pop ; StackCount = 5 + pushtype TOBJECT ; StackCount = 6 + pushtype TOBJECT ; StackCount = 7 + pushtype Pointer ; StackCount = 8 + setptr Var6, Var5 + call Class->SetNil + pop ; StackCount = 7 + assign Var4, Var5 + pop ; StackCount = 6 + callvar Var3 ; StackCount = 7 + pop ; StackCount = 6 + pop ; StackCount = 5 + jump loc_2dd +loc_2dd: + pop ; StackCount = 4 + pop ; StackCount = 3 + pushtype S32 ; StackCount = 4 + assign Var1, Arg1 + pushtype BOOLEAN ; StackCount = 5 + eq Var2, S32(12), Var1 + jz loc_380, Var2 + pushtype TNOTIFYEVENT ; StackCount = 6 + pushtype TNEWBUTTON ; StackCount = 7 + pushtype TWIZARDFORM ; StackCount = 8 + assign Var5, WIZARDFORM + pushvar Var4 ; StackCount = 9 + call TWIZARDFORM->NEXTBUTTON + pop ; StackCount = 8 + pop ; StackCount = 7 + pushvar Var3 ; StackCount = 8 + call TBUTTON->ONCLICK + pop ; StackCount = 7 + pop ; StackCount = 6 + pushtype TOBJECT ; StackCount = 7 + pushtype TOBJECT ; StackCount = 8 + pushtype Pointer ; StackCount = 9 + setptr Var6, Var5 + call Class->SetNil + pop ; StackCount = 8 + assign Var4, Var5 + pop ; StackCount = 7 + callvar Var3 ; StackCount = 8 + pop ; StackCount = 7 + pop ; StackCount = 6 + jump loc_380 +loc_380: + pop ; StackCount = 5 + pop ; StackCount = 4 +loc_382: + pushtype BOOLEAN ; StackCount = 5 + eq Var1, Arg1, S32(2) + sfz Var1 + pop ; StackCount = 4 + jf loc_45d + pushtype TNEWSTATICTEXT ; StackCount = 5 + pushtype TWIZARDFORM ; StackCount = 6 + assign Var2, WIZARDFORM + pushvar Var1 ; StackCount = 7 + call TWIZARDFORM->PAGEDESCRIPTIONLABEL + pop ; StackCount = 6 + pop ; StackCount = 5 + call TCONTROL->HIDE + pop ; StackCount = 4 + pushtype S32 ; StackCount = 5 + assign Var1, S32(50) + pushtype TNEWSTATICTEXT ; StackCount = 6 + pushtype TWIZARDFORM ; StackCount = 7 + assign Var3, WIZARDFORM + pushvar Var2 ; StackCount = 8 + call TWIZARDFORM->PAGENAMELABEL + pop ; StackCount = 7 + pop ; StackCount = 6 + call TCONTROL->HEIGHT + pop ; StackCount = 5 + pop ; StackCount = 4 + pushtype S32 ; StackCount = 5 + assign Var1, S32(12) + pushtype TFONT ; StackCount = 6 + pushtype TNEWSTATICTEXT ; StackCount = 7 + pushtype TWIZARDFORM ; StackCount = 8 + assign Var4, WIZARDFORM + pushvar Var3 ; StackCount = 9 + call TWIZARDFORM->PAGENAMELABEL + pop ; StackCount = 8 + pop ; StackCount = 7 + pushvar Var2 ; StackCount = 8 + call TNEWSTATICTEXT->FONT + pop ; StackCount = 7 + pop ; StackCount = 6 + call TFONT->SIZE + pop ; StackCount = 5 + pop ; StackCount = 4 +loc_45d: + pushtype BOOLEAN ; StackCount = 5 + eq Var1, Arg1, S32(6) + sfz Var1 + pop ; StackCount = 4 + jf loc_4c1 + pushtype S32 ; StackCount = 5 + assign Var1, S32(20) + pushtype TNEWSTATICTEXT ; StackCount = 6 + pushtype TWIZARDFORM ; StackCount = 7 + assign Var3, WIZARDFORM + pushvar Var2 ; StackCount = 8 + call TWIZARDFORM->SELECTDIRLABEL + pop ; StackCount = 7 + pop ; StackCount = 6 + call TCONTROL->HEIGHT + pop ; StackCount = 5 + pop ; StackCount = 4 +loc_4c1: + ret + +.function(import) external class(TWIZARDFORM, NEXTBUTTON) __pascal void TWIZARDFORM->NEXTBUTTON(__in __unknown,__in __unknown) + +.function(import) external class(TBUTTON, ONCLICK) __pascal void TBUTTON->ONCLICK(__in __unknown,__in __unknown) + +.function(import) external class(Class, SetNil) __pascal returnsval Class->SetNil(__out __unknown) + +.function(import) external class(TWIZARDFORM, PAGEDESCRIPTIONLABEL) __pascal void TWIZARDFORM->PAGEDESCRIPTIONLABEL(__in __unknown,__in __unknown) + +.function(import) external class(TWIZARDFORM, PAGENAMELABEL) __pascal void TWIZARDFORM->PAGENAMELABEL(__in __unknown,__in __unknown) + +.function(import) external class(TNEWSTATICTEXT, FONT) __pascal void TNEWSTATICTEXT->FONT(__in __unknown,__in __unknown) + +.function(import) external class(TWIZARDFORM, SELECTDIRLABEL) __pascal void TWIZARDFORM->SELECTDIRLABEL(__in __unknown,__in __unknown) + +.function(export) void DEINITIALIZESETUP() + pushtype BOOLEAN ; StackCount = 1 + pushvar Var1 ; StackCount = 2 + call files:mediaplayer.dll!DSStopMediaPlay + pop ; StackCount = 1 + pop ; StackCount = 0 + ret + +.function(export) void CURUNINSTALLSTEPCHANGED(__in TUNINSTALLSTEP Arg1) + pushtype S32 ; StackCount = 1 + pushtype BOOLEAN ; StackCount = 2 + eq Var2, Arg1, TUNINSTALLSTEP(3) + sfz Var2 + pop ; StackCount = 1 + jf loc_17b + pushtype BOOLEAN ; StackCount = 2 + pushtype Pointer ; StackCount = 3 + setptr Var3, Var1 + pushtype TEXECWAIT ; StackCount = 4 + assign Var4, TEXECWAIT(0) + pushtype S32 ; StackCount = 5 + assign Var5, S32(5) + pushtype UnicodeString_2 ; StackCount = 6 + assign Var6, UnicodeString_3("") + pushtype UnicodeString_2 ; StackCount = 7 + assign Var7, UnicodeString_3("") + pushtype UnicodeString_2 ; StackCount = 8 + assign Var8, UnicodeString_3("https://www.stellarinfo.com/uninstallation/?product=windows-data-recovery-professional.php") + pushtype UnicodeString_2 ; StackCount = 9 + assign Var9, UnicodeString_3("") + pushvar Var2 ; StackCount = 10 + call SHELLEXEC + pop ; StackCount = 9 + pop ; StackCount = 8 + pop ; StackCount = 7 + pop ; StackCount = 6 + pop ; StackCount = 5 + pop ; StackCount = 4 + pop ; StackCount = 3 + pop ; StackCount = 2 + pop ; StackCount = 1 +loc_17b: + ret + +.function(export) void CURSTEPCHANGED(__in TSETUPSTEP Arg1) + pushtype S32 ; StackCount = 1 + pushtype BOOLEAN ; StackCount = 2 + eq Var2, Arg1, TSETUPSTEP(2) + sfz Var2 + pop ; StackCount = 1 + jf loc_11e + pushtype BOOLEAN ; StackCount = 2 + pushvar Var2 ; StackCount = 3 + call ISWIN64 + pop ; StackCount = 2 + sfz Var2 + pop ; StackCount = 1 + jf loc_b5 + pushtype BOOLEAN ; StackCount = 2 + pushtype UnicodeString_2 ; StackCount = 3 + pushtype UnicodeString_2 ; StackCount = 4 + assign Var4, UnicodeString_3("{app}\\64bit_Download.zip") + pushvar Var3 ; StackCount = 5 + call EXPANDCONSTANT + pop ; StackCount = 4 + pop ; StackCount = 3 + pushvar Var2 ; StackCount = 4 + call DELETEFILE + pop ; StackCount = 3 + pop ; StackCount = 2 + pop ; StackCount = 1 + jump loc_11e +loc_b5: + pushtype BOOLEAN ; StackCount = 2 + pushtype UnicodeString_2 ; StackCount = 3 + pushtype UnicodeString_2 ; StackCount = 4 + assign Var4, UnicodeString_3("{app}\\32bit_Download.zip") + pushvar Var3 ; StackCount = 5 + call EXPANDCONSTANT + pop ; StackCount = 4 + pop ; StackCount = 3 + pushvar Var2 ; StackCount = 4 + call DELETEFILE + pop ; StackCount = 3 + pop ; StackCount = 2 + pop ; StackCount = 1 +loc_11e: + pushtype BOOLEAN ; StackCount = 2 + eq Var2, Arg1, TSETUPSTEP(3) + sfz Var2 + pop ; StackCount = 1 + jf loc_27e + pushtype BOOLEAN ; StackCount = 2 + pushtype Pointer ; StackCount = 3 + setptr Var3, Var1 + pushtype TEXECWAIT ; StackCount = 4 + assign Var4, TEXECWAIT(0) + pushtype S32 ; StackCount = 5 + assign Var5, S32(5) + pushtype UnicodeString_2 ; StackCount = 6 + assign Var6, UnicodeString_3("") + pushtype UnicodeString_2 ; StackCount = 7 + assign Var7, UnicodeString_3("") + pushtype UnicodeString_2 ; StackCount = 8 + assign Var8, UnicodeString_3("https://www.stellarinfo.com/installation/windows-data-recovery-professional.php") + pushtype UnicodeString_2 ; StackCount = 9 + assign Var9, UnicodeString_3("") + pushvar Var2 ; StackCount = 10 + call SHELLEXEC + pop ; StackCount = 9 + pop ; StackCount = 8 + pop ; StackCount = 7 + pop ; StackCount = 6 + pop ; StackCount = 5 + pop ; StackCount = 4 + pop ; StackCount = 3 + pop ; StackCount = 2 + pop ; StackCount = 1 +loc_27e: + ret + + diff --git a/IFPSLib.Tests/IFPSLib.Tests.csproj b/IFPSLib.Tests/IFPSLib.Tests.csproj index 893cad6..d406e11 100644 --- a/IFPSLib.Tests/IFPSLib.Tests.csproj +++ b/IFPSLib.Tests/IFPSLib.Tests.csproj @@ -59,6 +59,7 @@ + @@ -81,6 +82,9 @@ + + + diff --git a/IFPSLib.Tests/Properties/Resources.Designer.cs b/IFPSLib.Tests/Properties/Resources.Designer.cs index 55dab82..96935a6 100644 --- a/IFPSLib.Tests/Properties/Resources.Designer.cs +++ b/IFPSLib.Tests/Properties/Resources.Designer.cs @@ -70,6 +70,16 @@ namespace IFPSLib.Tests.Properties { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + internal static byte[] CompiledCode_v22 { + get { + object obj = ResourceManager.GetObject("CompiledCode_v22", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized string similar to .version 23 /// @@ -97,5 +107,33 @@ namespace IFPSLib.Tests.Properties { return ResourceManager.GetString("CompiledCodeDisasm", resourceCulture); } } + + /// + /// Looks up a localized string similar to .version 23 + /// + ///.entry !MAIN + /// + ///.type primitive(Pointer) Pointer + ///.type primitive(U32) U32 + ///.type primitive(Variant) Variant + ///.type primitive(PChar) PChar + ///.type primitive(Currency) Currency + ///.type primitive(Extended) Extended + ///.type primitive(Double) Double + ///.type primitive(Single) Single + ///.type primitive(S64) S64 + ///.type primitive(String) String + ///.type primitive(U32) U32_2 + ///.type primitive(S32) S32 + ///.type primitive(S16) S16 + ///.type primitive(U16) U16 + ///.type primitive(S8) S8 + ///.type(export) funcptr(void()) ANY [rest of string was truncated]";. + /// + internal static string CompiledCodeDisasm_v22 { + get { + return ResourceManager.GetString("CompiledCodeDisasm_v22", resourceCulture); + } + } } } diff --git a/IFPSLib.Tests/Properties/Resources.resx b/IFPSLib.Tests/Properties/Resources.resx index 52b96ff..1fa13d8 100644 --- a/IFPSLib.Tests/Properties/Resources.resx +++ b/IFPSLib.Tests/Properties/Resources.resx @@ -124,4 +124,10 @@ ..\CompiledCode.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + ..\CompiledCode_v22.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + + ..\CompiledCode_v22.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/IFPSLib.Tests/ScriptTest.cs b/IFPSLib.Tests/ScriptTest.cs index f0f2fca..8a1f2c4 100644 --- a/IFPSLib.Tests/ScriptTest.cs +++ b/IFPSLib.Tests/ScriptTest.cs @@ -11,6 +11,7 @@ namespace IFPSLib.Tests public class ScriptTest { private static readonly string origB64 = Convert.ToBase64String(Resources.CompiledCode); + private static readonly string origB64_22 = Convert.ToBase64String(Resources.CompiledCode_v22); [TestMethod] public void TestLoadSave() @@ -44,5 +45,38 @@ namespace IFPSLib.Tests var savedB64 = Convert.ToBase64String(script.Save()); Assert.AreEqual(savedB64, origB64); } + + [TestMethod] + public void TestLoadSaveV22() + { + // Load the script. + var script = Script.Load(Resources.CompiledCode_v22); + // Ensure it's not null. + Assert.IsNotNull(script); + // For an official script (compiled by inno setup), the entrypoint is the first function. + Assert.AreEqual(script.EntryPoint, script.Functions[0]); + // Save the script. + var savedBytes = script.Save(); + // Convert to base64 for later. + var saved = Convert.ToBase64String(savedBytes); + // Load the saved script. + var scriptSaved = Script.Load(savedBytes); + // Save again. + var savedTwice = Convert.ToBase64String(scriptSaved.Save()); + // Ensure both saved scripts equal each other. + Assert.AreEqual(saved, savedTwice); + // Ensure the saved script equals the original. + Assert.AreEqual(saved, origB64_22); + // Ensure the disassemblies are equal. + Assert.AreEqual(script.Disassemble(), scriptSaved.Disassemble()); + } + + [TestMethod] + public void TestAsmV22() + { + var script = Assembler.Assemble(Resources.CompiledCodeDisasm_v22); + var savedB64 = Convert.ToBase64String(script.Save()); + Assert.AreEqual(savedB64, origB64); + } } } diff --git a/IFPSLib/Emit/ExternalFunction.cs b/IFPSLib/Emit/ExternalFunction.cs index 8b97323..a8d0a72 100644 --- a/IFPSLib/Emit/ExternalFunction.cs +++ b/IFPSLib/Emit/ExternalFunction.cs @@ -27,7 +27,7 @@ namespace IFPSLib.Emit protected const string ClassString = "class:"; protected const string ComString = "intf:."; - internal static Base Load(BinaryReader br) + internal static Base Load(BinaryReader br, Script script) { var fdeclLen = br.Read(); using (var fdeclMem = new NativeMemoryArray(fdeclLen, true)) @@ -39,21 +39,21 @@ namespace IFPSLib.Emit if (fdeclSpan.EqualsAsciiString(0, DllString)) { brDecl.BaseStream.Position = DllString.Length; - return DLL.Load(brDecl); + return DLL.Load(brDecl, script); } else if (fdeclSpan.EqualsAsciiString(0, ClassString)) { brDecl.BaseStream.Position = ClassString.Length; - return Class.Load(brDecl); + return Class.Load(brDecl, script); } else if (fdeclSpan.EqualsAsciiString(0, ComString)) { brDecl.BaseStream.Position = ComString.Length; - return COM.Load(brDecl); + return COM.Load(brDecl, script); } else { - return Internal.Load(brDecl); + return Internal.Load(brDecl, script); } } } @@ -124,14 +124,17 @@ namespace IFPSLib.Emit internal override string Name => string.Format("{0}!{1}", DllName, ProcedureName); - internal static new DLL Load(BinaryReader br) + internal static new DLL Load(BinaryReader br, Script script) { var ret = new DLL(); ret.DllName = br.ReadAsciiStringTerminated(); ret.ProcedureName = br.ReadAsciiStringTerminated(); ret.CallingConvention = (NativeCallingConvention)br.ReadByte(); - ret.DelayLoad = br.ReadByte() != 0; - ret.LoadWithAlteredSearchPath = br.ReadByte() != 0; + if (script.FileVersion >= Script.VERSION_MIN_DLL_LOAD_FLAGS) + { + ret.DelayLoad = br.ReadByte() != 0; + ret.LoadWithAlteredSearchPath = br.ReadByte() != 0; + } ret.LoadArguments(br); @@ -164,8 +167,11 @@ namespace IFPSLib.Emit bw.WriteAsciiStringTerminated(DllName); bw.WriteAsciiStringTerminated(ProcedureName); bw.Write(CallingConvention); - bw.Write((byte)(DelayLoad ? 1 : 0)); - bw.Write((byte)(LoadWithAlteredSearchPath ? 1 : 0)); + if (ctx.FileVersion >= Script.VERSION_MIN_DLL_LOAD_FLAGS) + { + bw.Write((byte)(DelayLoad ? 1 : 0)); + bw.Write((byte)(LoadWithAlteredSearchPath ? 1 : 0)); + } SaveArguments(bw); } } @@ -181,7 +187,7 @@ namespace IFPSLib.Emit private const byte TERMINATOR = (byte)'|'; - internal static new Class Load(BinaryReader br) + internal static new Class Load(BinaryReader br, Script script) { var ret = new Class(); @@ -297,7 +303,7 @@ namespace IFPSLib.Emit internal override string Name => string.Format("CoInterface->vtbl[{0}]", VTableIndex); - internal static new COM Load(BinaryReader br) + internal static new COM Load(BinaryReader br, Script script) { var ret = new COM(); ret.VTableIndex = br.Read(); @@ -325,7 +331,7 @@ namespace IFPSLib.Emit public sealed class Internal : Base { - internal static new Internal Load(BinaryReader br) + internal static new Internal Load(BinaryReader br, Script script) { var ret = new Internal(); ret.LoadArguments(br); @@ -378,7 +384,7 @@ namespace IFPSLib.Emit ret.Name = br.ReadAsciiString(namelen); if (exported) { - ret.Declaration = FDecl.Base.Load(br); + ret.Declaration = FDecl.Base.Load(br, script); if (ret.Declaration.HasReturnArgument) ret.ReturnArgument = UnknownType.Instance; if (string.IsNullOrEmpty(ret.Name)) ret.Name = ret.Declaration.Name; } diff --git a/IFPSLib/Script.cs b/IFPSLib/Script.cs index 7fe6d62..9dae05e 100644 --- a/IFPSLib/Script.cs +++ b/IFPSLib/Script.cs @@ -20,6 +20,7 @@ namespace IFPSLib internal const int VERSION_MIN_ATTRIBUTES = 21; internal const int VERSION_MAX_SETSTACKTYPE = 22; // Is this correct? + internal const int VERSION_MIN_DLL_LOAD_FLAGS = 23; internal const int VERSION_MIN_STATICARRAYSTART = 23; ///