Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save rmi1974/1d5907fc1266a52b0ec9fa83ba04ca01 to your computer and use it in GitHub Desktop.
Save rmi1974/1d5907fc1266a52b0ec9fa83ba04ca01 to your computer and use it in GitHub Desktop.
How to analyse Inno Setup installer packages #innosetup #debug #wine

How to analyse Inno Setup installer packages

Tools used

  • innounp, the Inno Setup Unpacker
  • IFPSTools, tools for working with RemObjects PascalScript files (mainly disassemble PascalScript)

Extract the installer package

Using the Wargaming_Game_Center_Installer as example. Also mentioned in Wine Bugzilla #45600.

$ file wargaming_game_center_install_eu_c1ndrrqagwge.exe
wargaming_game_center_install_eu_c1ndrrqagwge.exe: PE32 executable (GUI) Intel 80386, for MS Windows

$ wine innounp.exe -v wargaming_game_center_install_eu_c1ndrrqagwge.exe

; Version detected: 5500 (Unicode)
Size        Time              Filename
--------------------------------------
    652800  2020.02.19 14:18  {tmp}\7za.exe
     22528  2020.02.19 14:18  {tmp}\b2p.dll
     37888  2020.02.19 14:18  {tmp}\botva2.dll
      4096  2020.02.19 14:18  {tmp}\CallbackCtrl.dll
     65024  2020.02.19 14:18  {tmp}\InnoCallback.dll
     36864  2020.02.19 14:18  {tmp}\psvince.dll
    558080  2020.02.19 14:18  {tmp}\NetworkSupport.dll
    146432  2020.02.19 14:18  {tmp}\InnoXmlParser.dll
    160768  2020.02.19 14:18  {tmp}\layered.dll
   3353600  2020.02.19 14:18  {tmp}\VclStylesInno.dll
    296844  2020.03.10 11:10  {tmp}\art_wgc_100.png
    249934  2020.03.10 11:10  {tmp}\art_wgc_express_100.png
    203504  2020.03.10 11:10  {tmp}\installer_wgc.ico
     33656  2020.03.10 11:10  {tmp}\bg_select_dir_100.bmp
   1080776  2020.03.10 11:10  {tmp}\bg_wizzard_100.bmp
    253400  2020.03.10 11:10  {tmp}\bg_wizzard_lang_100.bmp
      1096  2020.03.10 11:10  {tmp}\btn_select_dir_100.png
      2424  2020.03.10 11:10  {tmp}\btn_wizzard_close_100.png
      1834  2020.03.10 11:10  {tmp}\btn_wizzard_minimize_100.png
      2416  2020.03.10 11:10  {tmp}\chb_100.png
    292184  2020.03.10 11:10  {tmp}\dxwebsetup.exe
      4318  2020.03.10 11:10  {tmp}\pbbkg_100.png
      1268  2020.03.10 11:10  {tmp}\pb_100.png
      1445  2020.03.10 11:10  {tmp}\pb_candybar_100.png
    164426  2020.03.10 11:10  {tmp}\popup_body_error_100.png
    163200  2020.03.10 11:10  {tmp}\popup_body_info_100.png
       222  2020.03.10 11:10  {tmp}\popup_btn_cancel_100.png
       222  2020.03.10 11:10  {tmp}\popup_btn_ok_100.png
      2691  2020.03.10 11:10  {tmp}\popup_close_100.png
      1412  2020.03.10 11:10  {tmp}\popup_icon_error_100.png
      1449  2020.03.10 11:10  {tmp}\popup_icon_info_100.png
     18131  2020.03.10 11:10  {tmp}\popup_line_100.png
      1086  2020.03.10 11:10  {tmp}\popup_shw_bl_100.png
      1093  2020.03.10 11:10  {tmp}\popup_shw_br_100.png
       943  2020.03.10 11:10  {tmp}\popup_shw_b_100.png
       938  2020.03.10 11:10  {tmp}\popup_shw_l_100.png
       939  2020.03.10 11:10  {tmp}\popup_shw_r_100.png
      1063  2020.03.10 11:10  {tmp}\popup_shw_tl_100.png
      1122  2020.03.10 11:10  {tmp}\popup_shw_tr_100.png
       940  2020.03.10 11:10  {tmp}\popup_shw_t_100.png
     95476  2020.03.10 11:10  {tmp}\style_100.vsf
      3360  2020.03.10 11:10  {tmp}\title_icon_100.png
    108396  2020.03.10 11:10  {tmp}\uninstaller.ico
    122140  2020.03.10 11:10  {tmp}\WarHeliosCondC-Thai2.ttf
    145388  2020.03.10 11:10  {tmp}\WarHeliosCondCBold-Thai2.ttf
    319738  2020.03.29 16:18  install_script.iss
--------------------------------------
$ wine innounp.exe -m -x -d_unpacked wargaming_game_center_install_eu_c1ndrrqagwge.exe
...

$ tree --charset=ANSI _unpacked/
_unpacked/
|-- embedded
|   |-- be.isl
|   |-- bg.isl
|   |-- CompiledCode.bin
|   |-- cs.isl
...
|   |-- vi.isl
|   |-- WizardImage0.bmp
|   |-- WizardSmallImage0.bmp
|   |-- zh_CN.isl
|   |-- zh_SG.isl
|   `-- zh_tw.isl
|-- install_script.iss
`-- {tmp}
    |-- 7za.exe
    |-- art_wgc_100.png
    |-- art_wgc_express_100.png
    |-- b2p.dll
    |-- bg_select_dir_100.bmp
    |-- bg_wizzard_100.bmp
    |-- bg_wizzard_lang_100.bmp
    |-- botva2.dll
    |-- btn_select_dir_100.png
    |-- btn_wizzard_close_100.png
    |-- btn_wizzard_minimize_100.png
    |-- CallbackCtrl.dll
    |-- chb_100.png
    |-- dxwebsetup.exe
    |-- InnoCallback.dll
    |-- InnoXmlParser.dll
    |-- installer_wgc.ico
    |-- layered.dll
    |-- NetworkSupport.dll
    |-- pb_100.png
    |-- pbbkg_100.png
    |-- pb_candybar_100.png
    |-- popup_body_error_100.png
    |-- popup_body_info_100.png
    |-- popup_btn_cancel_100.png
    |-- popup_btn_ok_100.png
    |-- popup_close_100.png
    |-- popup_icon_error_100.png
    |-- popup_icon_info_100.png
    |-- popup_line_100.png
    |-- popup_shw_b_100.png
    |-- popup_shw_bl_100.png
    |-- popup_shw_br_100.png
    |-- popup_shw_l_100.png
    |-- popup_shw_r_100.png
    |-- popup_shw_t_100.png
    |-- popup_shw_tl_100.png
    |-- popup_shw_tr_100.png
    |-- psvince.dll
    |-- style_100.vsf
    |-- title_icon_100.png
    |-- uninstaller.ico
    |-- VclStylesInno.dll
    |-- WarHeliosCondCBold-Thai2.ttf
    `-- WarHeliosCondC-Thai2.ttf

2 directories, 88 files

Disassemble installer script (RemObjects PascalScript)

Ensure PHP and needed modules are installed on the Linux host:

sudo dnf install php php-mbstring

Run the disassembler:

php IFPSTools/DisIFPS.php _unpacked/embedded/CompiledCode.bin script_disassembly.pas

The output script file: script_disassembly.pas

⚠️ File was truncated in Gist due to size


Links

Types[0] = Pointer
Types[1] = U32
Types[2] = Variant
Types[3] = PChar
Types[4] = Currency
Types[5] = Extended
Types[6] = Double
Types[7] = Single
Types[8] = S64
Types[9] = String
Types[10] = U32
Types[11] = S32
Types[12] = S16
Types[13] = U16
Types[14] = S8
Types[15] = String
Types[16] = UnicodeString
Types[17] = UnicodeString
Types[18] = String
Types[19] = UnicodeString
Types[20] = WideString
Types[21] = WideChar
Types[22] = WideChar
Types[23] = Char
Types[24] = U8
Types[25] = U16
Types[26] = U32
Types[27] = BOOLEAN = U8
Types[28] = U8
Types[29] = ProcPtr
Types[30] = ProcPtr
Types[31] = ProcPtr
Types[32] = ProcPtr
Types[33] = TFILETIME = Record <U32,U32>
Types[34] = TRECT = Record <S32,S32,S32,S32>
Types[35] = Record <U32,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,U32>
Types[36] = U8
Types[37] = Record <U32,S32,S32,U32,U32,U32,U32,U32,U32,U32,U32,U32,U16,U16,U32,S32,S32,S32>
Types[38] = Record <S32,S32,U32,U32>
Types[39] = U32[]
Types[40] = TARRAYOFINTEGER = S32[]
Types[41] = U8[8]
Types[42] = TGUID = Record <U32,U16,U16,U8[8]>
Types[43] = Record <U32,U32,U32>
Types[44] = Record <U32,U32,S32,UnicodeString,UnicodeString,UnicodeString,UnicodeString,S32,S32,U32,UnicodeString,S32,U32,S32,S32>
Types[45] = Record <S32,U32,U32,UnicodeString,U32,U32,U32,S32>
Types[46] = Record <S32,U32,UnicodeString,UnicodeString,U16,U32,U32,U32>
Types[47] = U32[128]
Types[48] = Record <U32,U32,U32,U32,U32,U32[128]>
Types[49] = TFONT = Class
Types[50] = TBITMAPIMAGE = Class
Types[51] = TLABEL = Class
Types[52] = TSETUPFORM = Class
Types[53] = TNEWBUTTON = Class
Types[54] = TBUTTON = Class
Types[55] = U8
Types[56] = U8
Types[57] = U8
Types[58] = Record <U8,U8,String,S32,String,String>
Types[59] = TPOINT = Record <S32,S32>
Types[60] = Record <S32,S32,S32,S32,S32,Record <S32,S32>>
Types[61] = U8
Types[62] = U8
Types[63] = ProcPtr
Types[64] = ProcPtr
Types[65] = ProcPtr
Types[66] = WideChar[512]
Types[67] = Record <S32,S32,S32,S32>
Types[68] = Record <U32,U32,U32,U32>
Types[69] = U8
Types[70] = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Types[71] = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>[8]
Types[72] = TWINDOWSVERSION = Record <U32,U32,U32,U32,U32,U8,U8,U16>
Types[73] = TEXECWAIT = U8
Types[74] = Record <S32,S32>
Types[75] = TBITMAP = Class
Types[76] = TGRAPHIC = Class
Types[77] = TCANVAS = Class
Types[78] = TPERSISTENT = Class
Types[79] = TWIZARDFORM = Class
Types[80] = TFONTSTYLE = U8
Types[81] = TFONTSTYLES = Set
Types[82] = Variant[]
Types[83] = TARRAYOFSTRING = UnicodeString[]
Types[84] = TFORM = Class
Types[85] = !OPENARRAYOFCONST = Pointer[]
Types[86] = TFINDREC = Record <UnicodeString,U32,U32,U32,Record <U32,U32>,Record <U32,U32>,Record <U32,U32>,UnicodeString,S32>
Types[87] = U8
Types[88] = U8
Types[89] = WideChar[260]
Types[90] = WideChar[14]
Types[91] = Record <U32,Record <U32,U32>,Record <U32,U32>,Record <U32,U32>,U32,U32,U32,U32,WideChar[260],WideChar[14]>
Types[92] = Interface
Types[93] = Interface
Types[94] = Interface
Types[95] = Record <S32,S32>
Types[96] = IDISPATCH = Interface
Types[97] = !OPENARRAYOFVARIANT = Variant[]
Types[98] = U32
Types[99] = TCONTROL = Class
Types[100] = TNEWEDIT = Class
Types[101] = Record <U8,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>>
Types[102] = Record <U8,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>>[]
Types[103] = ProcPtr
Types[104] = ProcPtr
Types[105] = Record <Record <S32,S32,S32,S32>,UnicodeString,Record <S32,S32,S32,S32>,U8,UnicodeString,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,S32,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,UnicodeString,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,UnicodeString,Record <S32,S32,S32,S32>,UnicodeString,Record <S32,S32,S32,S32>,UnicodeString,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,UnicodeString,UnicodeString,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>>
Types[106] = Record <Record <S32,S32,S32,S32>,UnicodeString,Record <S32,S32,S32,S32>,U8,UnicodeString,Record <S32,S32,S32,S32>,UnicodeString,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,UnicodeString,Record <S32,S32,S32,S32>,UnicodeString,Record <S32,S32,S32,S32>,UnicodeString>
Types[107] = Record <Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,UnicodeString,Record <S32,S32>,UnicodeString,Record <S32,S32>,UnicodeString,Record <S32,S32>,S32>
Types[108] = Record <Record <S32,S32,S32,S32>,UnicodeString,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,UnicodeString,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>>
Types[109] = UnicodeString[11]
Types[110] = Record <S32,S32,S32,S32>[11]
Types[111] = Record <S32,S32,S32,S32>[11]
Types[112] = Record <Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,UnicodeString,Record <S32,S32,S32,S32>,UnicodeString,Record <S32,S32,S32,S32>,UnicodeString,UnicodeString[11],Record <S32,S32,S32,S32>[11],Record <S32,S32,S32,S32>[11]>
Types[113] = S32[10]
Types[114] = Record <UnicodeString,UnicodeString,U8,U8,U8>
Types[115] = Record <UnicodeString,UnicodeString,UnicodeString,S32>
Types[116] = Record <UnicodeString,UnicodeString,UnicodeString>
Types[117] = UnicodeString[3]
Types[118] = Record <UnicodeString,UnicodeString,UnicodeString,UnicodeString,S32>
Types[119] = ProcPtr
Types[120] = Record <UnicodeString,ProcPtr,ProcPtr,ProcPtr>
Types[121] = Record <UnicodeString,ProcPtr,ProcPtr,ProcPtr>[]
Types[122] = U8
Types[123] = TSELECTLANGUAGEFORM = Class
Types[124] = TOBJECT = Class
Types[125] = TNEWCOMBOBOX = Class
Types[126] = TMOUSEBUTTON = U8
Types[127] = TESHIFTSTATE = U8
Types[128] = TSHIFTSTATE = Set
Types[129] = TCOMPONENT = Class
Types[130] = TWINCONTROL = Class
Types[131] = TMOUSEEVENT = ProcPtr
Types[132] = TCOMBOBOXSTYLE = U8
Types[133] = TNOTIFYEVENT = ProcPtr
Types[134] = TSTRINGS = Class
Types[135] = TFORMBORDERSTYLE = U8
Types[136] = TFORMSTYLE = U8
Types[137] = TNEWSTATICTEXT = Class
Types[138] = S32[11]
Types[139] = TSETUPMESSAGEID = U8
Types[140] = TNEWPROGRESSBAR = Class
Types[141] = TNEWCHECKBOX = Class
Types[142] = !OPENARRAYOFUNICODESTRING = UnicodeString[]
Types[143] = TNEWRADIOBUTTON = Class
Types[144] = TNEWNOTEBOOKPAGE = Class
Types[145] = TBEVEL = Class
Types[146] = TPANEL = Class
Types[147] = TNEWNOTEBOOK = Class
Types[148] = TMSGBOXTYPE = U8
Types[149] = TSTRINGLIST = Class
Types[150] = ProcPtr
Types[151] = ProcPtr
Types[152] = S32[3]
Types[153] = TMAINFORM = Class
Types[154] = TSETUPSTEP = U8
Vars[0].Type = TFONT = Class
Vars[1].Type = TBITMAPIMAGE = Class
Vars[2].Type = TLABEL = Class
Vars[3].Type = S32
Vars[4].Type = S32
Vars[5].Type = UnicodeString
Vars[6].Type = UnicodeString
Vars[7].Type = UnicodeString
Vars[8].Type = BOOLEAN = U8
Vars[9].Type = BOOLEAN = U8
Vars[10].Type = BOOLEAN = U8
Vars[11].Type = BOOLEAN = U8
Vars[12].Type = BOOLEAN = U8
Vars[13].Type = BOOLEAN = U8
Vars[14].Type = BOOLEAN = U8
Vars[15].Type = BOOLEAN = U8
Vars[16].Type = BOOLEAN = U8
Vars[17].Type = BOOLEAN = U8
Vars[18].Type = BOOLEAN = U8
Vars[19].Type = BOOLEAN = U8
Vars[20].Type = BOOLEAN = U8
Vars[21].Type = BOOLEAN = U8
Vars[22].Type = BOOLEAN = U8
Vars[23].Type = TSETUPFORM = Class
Vars[24].Type = TSETUPFORM = Class
Vars[25].Type = TSETUPFORM = Class
Vars[26].Type = TSETUPFORM = Class
Vars[27].Type = TNEWBUTTON = Class
Vars[28].Type = TNEWBUTTON = Class
Vars[29].Type = TBUTTON = Class
Vars[30].Type = TBUTTON = Class
Vars[31].Type = S32
Vars[32].Type = S32
Vars[33].Type = S32
Vars[34].Type = S32
Vars[35].Type = S32
Vars[36].Type = S32
Vars[37].Type = S32
Vars[38].Type = S32
Vars[39].Type = S32
Vars[40].Type = S32
Vars[41].Type = S32
Vars[42].Type = S32
Vars[43].Type = S32
Vars[44].Type = S32
Vars[45].Type = UnicodeString
Vars[46].Type = UnicodeString
Vars[47].Type = UnicodeString
Vars[48].Type = UnicodeString
Vars[49].Type = BOOLEAN = U8
Vars[50].Type = U8
Vars[51].Type = Record <U8,U8,String,S32,String,String>
Vars[52].Type = S32
Vars[53].Type = BOOLEAN = U8
Vars[54].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[55].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[56].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[57].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[58].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[59].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[60].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[61].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[62].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[63].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[64].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[65].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[66].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[67].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[68].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[69].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[70].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[71].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>[8]
Vars[72].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[73].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[74].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[75].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[76].Type = Record <UnicodeString,UnicodeString,S32,S32,S32,S32[]>
Vars[77].Type = S32
Vars[78].Type = S32
Vars[79].Type = S32
Vars[80].Type = S32
Vars[81].Type = S32
Vars[82].Type = S32
Vars[83].Type = S32
Vars[84].Type = S32
Vars[85].Type = S32
Vars[86].Type = U32
Vars[87].Type = U32
Vars[88].Type = S32
Vars[89].Type = UnicodeString
Vars[90].Type = Record <UnicodeString,UnicodeString,U8,U8,U8>
Vars[91].Type = UnicodeString
Vars[92].Type = UnicodeString
Vars[93].Type = UnicodeString
Vars[94].Type = TARRAYOFSTRING = UnicodeString[]
Vars[95].Type = U32
Vars[96].Type = U32
Vars[97].Type = U32
Vars[98].Type = UnicodeString
Vars[99].Type = U32
Vars[100].Type = S32
Vars[101].Type = UnicodeString
Vars[102].Type = UnicodeString
Vars[103].Type = UnicodeString
Vars[104].Type = UnicodeString
Vars[105].Type = UnicodeString[3]
Vars[106].Type = Record <UnicodeString,ProcPtr,ProcPtr,ProcPtr>[]
Vars[107].Type = TBITMAPIMAGE = Class
Vars[108].Type = BOOLEAN = U8
Vars[109].Type = Record <Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,Record <S32,S32,S32,S32>,UnicodeString,Record <S32,S32,S32,S32>,UnicodeString,Record <S32,S32,S32,S32>,UnicodeString,UnicodeString[11],Record <S32,S32,S32,S32>[11],Record <S32,S32,S32,S32>[11]>
Vars[110].Type = S32[11]
Vars[111].Type = S32
Vars[112].Type = S32
Vars[113].Type = S32
Vars[114].Type = S32
Vars[115].Type = S32
Vars[116].Type = S32
Vars[117].Type = TLABEL = Class
Vars[118].Type = UnicodeString
Vars[119].Type = UnicodeString
Vars[120].Type = UnicodeString
Vars[121].Type = UnicodeString
Vars[122].Type = S32
Vars[123].Type = S32
Vars[124].Type = S32
Vars[125].Type = BOOLEAN = U8
Vars[126].Type = S32
Vars[127].Type = TLABEL = Class
Vars[128].Type = BOOLEAN = U8
Vars[129].Type = S32
Vars[130].Type = TLABEL = Class
Vars[131].Type = S32
Vars[132].Type = S32
Vars[133].Type = TLABEL = Class
Vars[134].Type = TLABEL = Class
Vars[135].Type = TLABEL = Class
Vars[136].Type = TLABEL = Class
Vars[137].Type = TLABEL = Class
Vars[138].Type = TNEWEDIT = Class
Vars[139].Type = TBITMAPIMAGE = Class
Vars[140].Type = TBITMAPIMAGE = Class
Vars[141].Type = S32
Vars[142].Type = TLABEL = Class
Vars[143].Type = TLABEL = Class
Vars[144].Type = TLABEL = Class
Vars[145].Type = TLABEL = Class
Vars[146].Type = TLABEL = Class
Vars[147].Type = TLABEL = Class
Vars[148].Type = TLABEL = Class
Vars[149].Type = TLABEL = Class
Vars[150].Type = TLABEL = Class
Vars[151].Type = TLABEL = Class
Vars[152].Type = TBUTTON = Class
Vars[153].Type = TBUTTON = Class
Vars[154].Type = TLABEL = Class
Vars[155].Type = TLABEL = Class
Vars[156].Type = TLABEL = Class
Vars[157].Type = TLABEL = Class
Vars[158].Type = TNEWCHECKBOX = Class
Vars[159].Type = TLABEL = Class
Vars[160].Type = TLABEL = Class
Vars[161].Type = TLABEL = Class
Vars[162].Type = TLABEL = Class
Vars[163].Type = BOOLEAN = U8
Vars[164].Type = BOOLEAN = U8
Functions[0] = exported void !MAIN()
ret
Functions[1] = external stdcall delayload returnsval {tmp}\InnoCallback.dll!wrapcallback(out Arg1)
Functions[2] = external stdcall delayload returnsval {tmp}\InnoCallback.dll!wrapcallback(out Arg1)
Functions[3] = external stdcall delayload returnsval {tmp}\InnoCallback.dll!wrapcallback(out Arg1)
Functions[4] = external stdcall delayload returnsval {tmp}\InnoCallback.dll!wrapcallback(out Arg1)
Functions[5] = external stdcall returnsval user32.dll!SetTimer(out Arg1,out Arg2)
Functions[6] = external stdcall returnsval user32.dll!KillTimer(out Arg1)
Functions[7] = external stdcall returnsval kernel32!GetTickCount()
Functions[8] = external stdcall void kernel32.dll!GetSystemTimeAsFileTime(in Arg1)
Functions[9] = external stdcall returnsval kernel32.dll!FileTimeToLocalFileTime(in Arg1)
Functions[10] = external stdcall returnsval user32.dll!MessageBoxTimeoutW(out Arg1,out Arg2,out Arg3)
Functions[11] = external stdcall returnsval User32.dll!MessageBoxW(out Arg1,out Arg2)
Functions[12] = external stdcall returnsval user32.dll!GetMonitorInfoW(out Arg1)
Functions[13] = external stdcall returnsval user32.dll!GetDC(out Arg1)
Functions[14] = external stdcall returnsval user32.dll!ReleaseDC(out Arg1)
Functions[15] = external stdcall returnsval gdi32.dll!GetDeviceCaps(out Arg1)
Functions[16] = external stdcall returnsval user32.dll!MonitorFromWindow(out Arg1)
Functions[17] = external stdcall delayload returnsval shcore.dll!GetDpiForMonitor(out Arg1,in Arg2)
Functions[18] = external stdcall delayload returnsval User32.dll!GetClientRect(out Arg1)
Functions[19] = external stdcall delayload returnsval User32.dll!DrawTextW(out Arg1,out Arg2,out Arg3)
Functions[20] = external stdcall returnsval Kernel32.dll!GetExitCodeProcess(out Arg1)
Functions[21] = external stdcall delayload returnsval psapi.dll!GetModuleFileNameExW(out Arg1,out Arg2)
Functions[22] = external stdcall returnsval Kernel32.dll!GetModuleFileNameW(out Arg1,out Arg2)
Functions[23] = external stdcall returnsval kernel32.dll!WideCharToMultiByte(out Arg1,out Arg2,out Arg3,out Arg4)
Functions[24] = external stdcall returnsval kernel32.dll!MultiByteToWideChar(out Arg1,out Arg2,out Arg3)
Functions[25] = external stdcall returnsval kernel32.dll!CreateProcessW(out Arg1,out Arg2,out Arg3,out Arg4,in Arg5)
Functions[26] = external stdcall returnsval kernel32.dll!TerminateProcess(out Arg1)
Functions[27] = external stdcall delayload returnsval kernel32.dll!OpenProcess(out Arg1,out Arg2)
Functions[28] = external stdcall delayload returnsval psapi.dll!EnumProcesses(out Arg1,in Arg2)
Functions[29] = external stdcall delayload returnsval psapi.dll!EnumProcessModulesEx(out Arg1,out Arg2,out Arg3)
Functions[30] = external stdcall delayload returnsval psapi.dll!EnumProcessModules(out Arg1,out Arg2)
Functions[31] = external stdcall returnsval kernel32.dll!CreateMutexW(out Arg1,out Arg2)
Functions[32] = external stdcall returnsval kernel32.dll!ReleaseMutex(out Arg1)
Functions[33] = external stdcall returnsval kernel32.dll!CreateEventW(out Arg1,out Arg2)
Functions[34] = external stdcall returnsval kernel32.dll!SetEvent(out Arg1)
Functions[35] = external stdcall returnsval kernel32.dll!WaitForSingleObject(out Arg1)
Functions[36] = external stdcall returnsval kernel32.dll!CloseHandle(out Arg1)
Functions[37] = external stdcall returnsval ole32.dll!CoCreateGuid(in Arg1)
Functions[38] = external stdcall returnsval kernel32.dll!CreatePipe(in Arg1,in Arg2)
Functions[39] = external stdcall returnsval kernel32.dll!SetHandleInformation(out Arg1,out Arg2)
Functions[40] = external stdcall returnsval Kernel32.dll!ReadFile(out Arg1,out Arg2,out Arg3)
Functions[41] = external stdcall returnsval Kernel32.dll!WriteFile(out Arg1,out Arg2,out Arg3)
Functions[42] = external stdcall returnsval kernel32.dll!PeekNamedPipe(out Arg1,out Arg2,in Arg3)
Functions[43] = external stdcall returnsval shell32.dll!ShellExecuteExW(in Arg1)
Functions[44] = external stdcall returnsval user32.dll!FindWindowExW(out Arg1,out Arg2)
Functions[45] = external stdcall returnsval User32.dll!EnableWindow(out Arg1)
Functions[46] = external stdcall returnsval User32.dll!EnumWindows(out Arg1)
Functions[47] = external stdcall returnsval User32.dll!SetParent(out Arg1)
Functions[48] = external stdcall returnsval user32.dll!LoadIconW(out Arg1)
Functions[49] = external stdcall returnsval user32.dll!DrawIcon(out Arg1,out Arg2)
Functions[50] = external stdcall returnsval user32.dll!DestroyIcon(out Arg1)
Functions[51] = external stdcall returnsval User32.dll!GetWindowThreadProcessId(out Arg1)
Functions[52] = external stdcall returnsval Kernel32.dll!GetProcessId(out Arg1)
Functions[53] = external stdcall returnsval shell32.dll!SHBrowseForFolderW(in Arg1)
Functions[54] = external stdcall returnsval shell32.dll!SHGetPathFromIDListW(out Arg1)
Functions[55] = external stdcall returnsval shell32.dll!SHGetSpecialFolderLocation(out Arg1,in Arg2)
Functions[56] = external stdcall returnsval shell32.dll!SHFileOperationW(out Arg1)
Functions[57] = external stdcall void Ole32.dll!CoTaskMemFree(out Arg1)
Functions[58] = external stdcall returnsval Kernel32.dll!GetDriveTypeW(out Arg1)
Functions[59] = external stdcall returnsval kernel32.dll!GetFileAttributesW(out Arg1)
Functions[60] = external stdcall returnsval user32.dll!CallWindowProcA(out Arg1,out Arg2,out Arg3)
Functions[61] = external stdcall returnsval Kernel32.dll!MoveFileExW(out Arg1,out Arg2)
Functions[62] = external stdcall returnsval ntdll.dll!RtlGetVersion(in Arg1)
Functions[63] = external stdcall returnsval gdi32.dll!AddFontResourceExW(out Arg1,out Arg2)
Functions[64] = external stdcall returnsval gdi32.dll!RemoveFontResourceExW(out Arg1,out Arg2)
Functions[65] = external stdcall returnsval user32.dll!SetWindowLongA(out Arg1,out Arg2)
Functions[66] = external stdcall returnsval user32.dll!ShowWindow(out Arg1)
Functions[67] = external stdcall returnsval user32.dll!SetWindowPos(out Arg1,out Arg2,out Arg3,out Arg4)
Functions[68] = external stdcall returnsval winmm!PlaySoundA(out Arg1,out Arg2)
Functions[69] = external stdcall returnsval user32!ReleaseCapture()
Functions[70] = external stdcall returnsval shell32.dll!ShellExecuteW(out Arg1,out Arg2,out Arg3)
Functions[71] = external stdcall returnsval shell32.dll!SHGetFolderPathW(out Arg1,out Arg2,out Arg3)
Functions[72] = external stdcall void kernel32.dll!ExitProcess(out Arg1)
Functions[73] = external stdcall returnsval user32.dll!GetWindowLongW(out Arg1)
Functions[74] = external stdcall returnsval user32.dll!GetActiveWindow()
Functions[75] = exported BOOLEAN HRESULT_FAILED(in S32 Arg1)
compare RetVal, Arg1 < ( S32 0 )
ret
Functions[76] = exported UnicodeString WGCAPPNAME()
assign RetVal, ( String "Wargaming.net Game Center" )
ret
Functions[77] = exported UnicodeString WGCPUBLISHERNAME()
assign RetVal, ( String "Wargaming.net" )
ret
Functions[78] = exported UnicodeString WGCSTDDIR()
assign RetVal, ( String "Wargaming.net\GameCenter" )
ret
Functions[79] = exported UnicodeString WGCDESKTOPSHORTCUTNAME()
assign RetVal, ( String "Game Center" )
ret
Functions[80] = exported UnicodeString WGCPROGRAMSFORLDERSHORTCUTNAME()
assign RetVal, ( String "Wargaming.net Game Center" )
ret
Functions[81] = external stdcall delayload returnsval setup:user32.dll!PeekMessageA(in Arg1,out Arg2,out Arg3)
Functions[82] = external stdcall delayload returnsval setup:user32.dll!TranslateMessage(in Arg1)
Functions[83] = external stdcall delayload returnsval setup:user32.dll!DispatchMessageA(in Arg1)
Functions[84] = exported void WDS_TRACEMSG(in UnicodeString Arg1)
pushtype UnicodeString ; StackCount = 1
pushtype WideString ; StackCount = 2
assign Var2, ( String ">> donwload: " )
calculate Var2 + Arg1
assign Var1, Var2
pop ; StackCount = 1
call LOG
pop ; StackCount = 0
ret
Functions[85] = external void LOG(out Arg1)
Functions[86] = exported void WDS_TRACEERROR(in UnicodeString Arg1,in S32 Arg2)
pushtype UnicodeString ; StackCount = 1
pushtype WideString ; StackCount = 2
assign Var2, Arg1
calculate Var2 + ( String "; code=" )
pushtype UnicodeString ; StackCount = 3
pushtype S64 ; StackCount = 4
assign Var4, Arg2
pushvar Var3 ; StackCount = 5
call INTTOSTR
pop ; StackCount = 4
pop ; StackCount = 3
calculate Var2 + Var3
pop ; StackCount = 2
calculate Var2 + ( String "; " )
pushtype UnicodeString ; StackCount = 3
pushtype S32 ; StackCount = 4
assign Var4, Arg2
pushvar Var3 ; StackCount = 5
call SYSERRORMESSAGE
pop ; StackCount = 4
pop ; StackCount = 3
calculate Var2 + Var3
pop ; StackCount = 2
assign Var1, Var2
pop ; StackCount = 1
call WDS_TRACEMSG
pop ; StackCount = 0
ret
Functions[87] = external returnsval INTTOSTR(out Arg1)
Functions[88] = external returnsval SYSERRORMESSAGE(out Arg1)
Functions[89] = exported void DWINSHS_PROCESSMESSAGES()
pushtype Record <S32,S32,S32,S32,S32,Record <S32,S32>> ; StackCount = 1
pushtype BOOLEAN ; StackCount = 2
loc_a:
pushtype U32 ; StackCount = 3
pushtype S32 ; StackCount = 4
assign Var4, ( S32 1 )
pushtype S32 ; StackCount = 5
assign Var5, ( S32 0 )
pushtype S32 ; StackCount = 6
assign Var6, ( S32 0 )
pushtype S32 ; StackCount = 7
assign Var7, ( S32 0 )
pushtype Pointer ; StackCount = 8
setptr Var8, Var1
pushvar Var3 ; StackCount = 9
call setup:user32.dll!PeekMessageA
pop ; StackCount = 8
pop ; StackCount = 7
pop ; StackCount = 6
pop ; StackCount = 5
pop ; StackCount = 4
pop ; StackCount = 3
assign Var2, Var3
pop ; StackCount = 2
jumpfalse Var2, loc_137
pushtype BOOLEAN ; StackCount = 3
compare Var3, Var1[1] != ( S32 18 )
setflag not Var3
pop ; StackCount = 2
jumpflag loc_10c
pushtype U32 ; StackCount = 3
pushtype Pointer ; StackCount = 4
setptr Var4, Var1
pushvar Var3 ; StackCount = 5
call setup:user32.dll!TranslateMessage
pop ; StackCount = 4
pop ; StackCount = 3
pop ; StackCount = 2
pushtype S32 ; StackCount = 3
pushtype Pointer ; StackCount = 4
setptr Var4, Var1
pushvar Var3 ; StackCount = 5
call setup:user32.dll!DispatchMessageA
pop ; StackCount = 4
pop ; StackCount = 3
pop ; StackCount = 2
jump loc_132
loc_10c:
assign Global50, ( U8 2 )
pushtype U32 ; StackCount = 3
assign Var3, ( S32 0 )
call kernel32.dll!ExitProcess
pop ; StackCount = 2
loc_132:
jump loc_a
loc_137:
pop ; StackCount = 1
ret
Functions[90] = external stdcall delayload returnsval setup:wininet.dll!InternetOpenA(out Arg1,out Arg2,out Arg3)
Functions[91] = external stdcall delayload returnsval setup:wininet.dll!InternetSetOptionA(out Arg1,out Arg2)
Functions[92] = external stdcall delayload returnsval setup:wininet.dll!InternetConnectA(out Arg1,out Arg2,out Arg3,out Arg4)
Functions[93] = external stdcall delayload returnsval setup:wininet.dll!HttpOpenRequestA(out Arg1,out Arg2,out Arg3,out Arg4)
Functions[94] = external stdcall delayload returnsval setup:wininet.dll!HttpSendRequestA(out Arg1,out Arg2,out Arg3)
Functions[95] = external stdcall delayload returnsval setup:wininet.dll!HttpQueryInfoA(out Arg1,out Arg2,in Arg3)
Functions[96] = external stdcall delayload returnsval setup:wininet.dll!FtpOpenFileA(out Arg1,out Arg2,out Arg3)
Functions[97] = external stdcall delayload returnsval setup:wininet.dll!FtpGetFileSize(out Arg1)
Functions[98] = external stdcall delayload returnsval setup:wininet.dll!InternetReadFile(out Arg1,out Arg2)
Functions[99] = external stdcall delayload returnsval setup:wininet.dll!InternetCloseHandle(out Arg1)
Functions[100] = external stdcall delayload returnsval setup:wininet.dll!InternetGetConnectedState(out Arg1)
Functions[101] = exported void PARSEURL(in String Arg1,out U8 Arg2,out String Arg3,out String Arg4,out String Arg5,out String Arg6,out String Arg7,out S32 Arg8)
pushtype S32 ; StackCount = 1
pushtype UnicodeString ; StackCount = 2
pushtype UnicodeString ; StackCount = 3
assign Var3, Arg1
pushvar Var2 ; StackCount = 4
call TRIM
pop ; StackCount = 3
pop ; StackCount = 2
assign Arg1, Var2
pop ; StackCount = 1
assign Arg2, ( U8 0 )
assign Arg8, ( S32 80 )
pushtype String ; StackCount = 2
assign Var2, Arg1
pushtype String ; StackCount = 3
assign Var3, ( String "://" )
pushvar Var1 ; StackCount = 4
call POS
pop ; StackCount = 3
pop ; StackCount = 2
pop ; StackCount = 1
pushtype BOOLEAN ; StackCount = 2
compare Var2, Var1 > ( S32 0 )
setflag not Var2
pop ; StackCount = 1
jumpflag loc_29f
pushtype String ; StackCount = 2
pushtype UnicodeString ; StackCount = 3
pushtype UnicodeString ; StackCount = 4
pushtype UnicodeString ; StackCount = 5
pushtype String ; StackCount = 6
pushtype S32 ; StackCount = 7
assign Var7, Var1
calculate Var7 - ( S32 1 )
pushtype S32 ; StackCount = 8
assign Var8, ( S32 1 )
pushtype String ; StackCount = 9
assign Var9, Arg1
pushvar Var6 ; StackCount = 10
call COPY
pop ; StackCount = 9
pop ; StackCount = 8
pop ; StackCount = 7
pop ; StackCount = 6
assign Var5, Var6
pop ; StackCount = 5
pushvar Var4 ; StackCount = 6
call TRIM
pop ; StackCount = 5
pop ; StackCount = 4
pushvar Var3 ; StackCount = 5
call LOWERCASE
pop ; StackCount = 4
pop ; StackCount = 3
assign Var2, Var3
pop ; StackCount = 2
pushtype BOOLEAN ; StackCount = 3
compare Var3, ( String "http" ) == Var2
jumpfalse Var3, loc_190
assign Arg8, ( S32 80 )
assign Arg2, ( U8 0 )
jump loc_216
loc_190:
compare Var3, ( String "https" ) == Var2
jumpfalse Var3, loc_1d4
assign Arg8, ( S32 443 )
assign Arg2, ( U8 1 )
jump loc_216
loc_1d4:
compare Var3, ( String "ftp" ) == Var2
jumpfalse Var3, loc_216
assign Arg8, ( S32 21 )
assign Arg2, ( U8 2 )
jump loc_216
loc_216:
pop ; StackCount = 2
pop ; StackCount = 1
pushtype UnicodeString ; StackCount = 2
pushtype UnicodeString ; StackCount = 3
pushtype String ; StackCount = 4
pushtype S32 ; StackCount = 5
assign Var5, ( S32 65535 )
pushtype S32 ; StackCount = 6
assign Var6, Var1
calculate Var6 + ( S32 3 )
pushtype String ; StackCount = 7
assign Var7, Arg1
pushvar Var4 ; StackCount = 8
call COPY
pop ; StackCount = 7
pop ; StackCount = 6
pop ; StackCount = 5
pop ; StackCount = 4
assign Var3, Var4
pop ; StackCount = 3
pushvar Var2 ; StackCount = 4
call TRIM
pop ; StackCount = 3
pop ; StackCount = 2
assign Arg1, Var2
pop ; StackCount = 1
loc_29f:
pushtype String ; StackCount = 2
assign Var2, Arg1
pushtype Char ; StackCount = 3
assign Var3, ( Char '/' )
pushvar Var1 ; StackCount = 4
call POS
pop ; StackCount = 3
pop ; StackCount = 2
pop ; StackCount = 1
pushtype BOOLEAN ; StackCount = 2
compare Var2, Var1 > ( S32 0 )
setflag not Var2
pop ; StackCount = 1
jumpflag loc_3f8
pushtype UnicodeString ; StackCount = 2
pushtype UnicodeString ; StackCount = 3
pushtype String ; StackCount = 4
pushtype S32 ; StackCount = 5
assign Var5, Var1
calculate Var5 - ( S32 1 )
pushtype S32 ; StackCount = 6
assign Var6, ( S32 1 )
pushtype String ; StackCount = 7
assign Var7, Arg1
pushvar Var4 ; StackCount = 8
call COPY
pop ; StackCount = 7
pop ; StackCount = 6
pop ; StackCount = 5
pop ; StackCount = 4
assign Var3, Var4
pop ; StackCount = 3
pushvar Var2 ; StackCount = 4
call TRIM
pop ; StackCount = 3
pop ; StackCount = 2
assign Arg3, Var2
pop ; StackCount = 1
pushtype UnicodeString ; StackCount = 2
pushtype UnicodeString ; StackCount = 3
pushtype String ; StackCount = 4
pushtype S32 ; StackCount = 5
assign Var5, ( S32 65535 )
pushtype S32 ; StackCount = 6
assign Var6, Var1
pushtype String ; StackCount = 7
assign Var7, Arg1
pushvar Var4 ; StackCount = 8
call COPY
pop ; StackCount = 7
pop ; StackCount = 6
pop ; StackCount = 5
pop ; StackCount = 4
assign Var3, Var4
pop ; StackCount = 3
pushvar Var2 ; StackCount = 4
call TRIM
pop ; StackCount = 3
pop ; StackCount = 2
assign Arg4, Var2
pop ; StackCount = 1
jump loc_412
loc_3f8:
assign Arg3, Arg1
assign Arg4, ( String "" )
loc_412:
pushtype String ; StackCount = 2
assign Var2, Arg3
pushtype Char ; StackCount = 3
assign Var3, ( Char '@' )
pushvar Var1 ; StackCount = 4
call POS
pop ; StackCount = 3
pop ; StackCount = 2
pop ; StackCount = 1
pushtype BOOLEAN ; StackCount = 2
compare Var2, Var1 > ( S32 0 )
setflag not Var2
pop ; StackCount = 1
jumpflag loc_57b
pushtype UnicodeString ; StackCount = 2
pushtype UnicodeString ; StackCount = 3
pushtype String ; StackCount = 4
pushtype S32 ; StackCount = 5
assign Var5, Var1
calculate Var5 - ( S32 1 )
pushtype S32 ; StackCount = 6
assign Var6, ( S32 1 )
pushtype String ; StackCount = 7
assign Var7, Arg3
pushvar Var4 ; StackCount = 8
call COPY
pop ; StackCount = 7
pop ; StackCount = 6
pop ; StackCount = 5
pop ; StackCount = 4
assign Var3, Var4
pop ; StackCount = 3
pushvar Var2 ; StackCount = 4
call TRIM
pop ; StackCount = 3
pop ; StackCount = 2
assign Arg6, Var2
pop ; StackCount = 1
pushtype UnicodeString ; StackCount = 2
pushtype UnicodeString ; StackCount = 3
pushtype String ; StackCount = 4
pushtype S32 ; StackCount = 5
assign Var5, ( S32 65535 )
pushtype S32 ; StackCount = 6
assign Var6, Var1
calculate Var6 + ( S32 1 )
pushtype String ; StackCount = 7
assign Var7, Arg3
pushvar Var4 ; StackCount = 8
call COPY
pop ; StackCount = 7
pop ; StackCount = 6
pop ; StackCount = 5
pop ; StackCount = 4
assign Var3, Var4
pop ; StackCount = 3
pushvar Var2 ; StackCount = 4
call TRIM
pop ; StackCount = 3
pop ; StackCount = 2
assign Arg3, Var2
pop ; StackCount = 1
jump loc_58a
loc_57b:
assign Arg6, ( String "" )
loc_58a:
pushtype String ; StackCount = 2
assign Var2, Arg6
pushtype Char ; StackCount = 3
assign Var3, ( Char ':' )
pushvar Var1 ; StackCount = 4
call POS
pop ; StackCount = 3
pop ; StackCount = 2
pop ; StackCount = 1
pushtype BOOLEAN ; StackCount = 2
compare Var2, Var1 > ( S32 0 )
setflag not Var2
pop ; StackCount = 1
jumpflag loc_6f3
pushtype UnicodeString ; StackCount = 2
pushtype UnicodeString ; StackCount = 3
pushtype String ; StackCount = 4
pushtype S32 ; StackCount = 5
assign Var5, ( S32 65535 )
pushtype S32 ; StackCount = 6
assign Var6, Var1
calculate Var6 + ( S32 1 )
pushtype String ; StackCount = 7
assign Var7, Arg6
pushvar Var4 ; StackCount = 8
call COPY
pop ; StackCount = 7
pop ; StackCount = 6
pop ; StackCount = 5
pop ; StackCount = 4
assign Var3, Var4
pop ; StackCount = 3
pushvar Var2 ; StackCount = 4
call TRIM
pop ; StackCount = 3
pop ; StackCount = 2
assign Arg7, Var2
pop ; StackCount = 1
pushtype UnicodeString ; StackCount = 2
pushtype UnicodeString ; StackCount = 3
pushtype String ; StackCount = 4
pushtype S32 ; StackCount = 5
assign Var5, Var1
calculate Var5 - ( S32 1 )
pushtype S32 ; StackCount = 6
assign Var6, ( S32 1 )
pushtype String ; StackCount = 7
assign Var7, Arg6
pushvar Var4 ; StackCount = 8
call COPY
pop ; StackCount = 7
pop ; StackCount = 6
pop ; StackCount = 5
pop ; StackCount = 4
assign Var3, Var4
pop ; StackCount = 3
pushvar Var2 ; StackCount = 4
call TRIM
pop ; StackCount = 3
pop ; StackCount = 2
assign Arg6, Var2
pop ; StackCount = 1
jump loc_702
loc_6f3:
assign Arg7, ( String "" )
loc_702:
pushtype String ; StackCount = 2
assign Var2, Arg3
pushtype Char ; StackCount = 3
assign Var3, ( Char ':' )
pushvar Var1 ; StackCount = 4
call POS
pop ; StackCount = 3
pop ; StackCount = 2
pop ; StackCount = 1
pushtype BOOLEAN ; StackCount = 2
compare Var2, Var1 > ( S32 0 )
setflag not Var2
pop ; StackCount = 1
jumpflag loc_878
pushtype S32 ; StackCount = 2
assign Var2, Arg8
pushtype UnicodeString ; StackCount = 3
pushtype UnicodeString ; StackCount = 4
pushtype String ; StackCount = 5
pushtype S32 ; StackCount = 6
assign Var6, ( S32 65535 )
pushtype S32 ; StackCount = 7
assign Var7, Var1
calculate Var7 + ( S32 1 )
pushtype String ; StackCount = 8
assign Var8, Arg3
pushvar Var5 ; StackCount = 9
call COPY
pop ; StackCount = 8
pop ; StackCount = 7
pop ; StackCount = 6
pop ; StackCount = 5
assign Var4, Var5
pop ; StackCount = 4
pushvar Var3 ; StackCount = 5
call TRIM
pop ; StackCount = 4
pop ; StackCount = 3
pushvar Arg8 ; StackCount = 4
call STRTOINTDEF
pop ; StackCount = 3
pop ; StackCount = 2
pop ; StackCount = 1
pushtype UnicodeString ; StackCount = 2
pushtype UnicodeString ; StackCount = 3
pushtype String ; StackCount = 4
pushtype S32 ; StackCount = 5
assign Var5, Var1
calculate Var5 - ( S32 1 )
pushtype S32 ; StackCount = 6
assign Var6, ( S32 1 )
pushtype String ; StackCount = 7
assign Var7, Arg3
pushvar Var4 ; StackCount = 8
call COPY
pop ; StackCount = 7
pop ; StackCount = 6
pop ; StackCount = 5
pop ; StackCount = 4
assign Var3, Var4
pop ; StackCount = 3
pushvar Var2 ; StackCount = 4
call TRIM
pop ; StackCount = 3
pop ; StackCount = 2
assign Arg3, Var2
pop ; StackCount = 1
loc_878:
pushtype String ; StackCount = 2
assign Var2, Arg4
pushtype Char ; StackCount = 3
assign Var3, ( Char '?' )
pushvar Var1 ; StackCount = 4
call POS
pop ; StackCount = 3
pop ; StackCount = 2
pop ; StackCount = 1
pushtype BOOLEAN ; StackCount = 2
compare Var2, Var1 > ( S32 0 )
setflag not Var2
pop ; StackCount = 1
jumpflag loc_9e1
pushtype UnicodeString ; StackCount = 2
pushtype UnicodeString ; StackCount = 3
pushtype String ; StackCount = 4
pushtype S32 ; StackCount = 5
assign Var5, ( S32 65536 )
pushtype S32 ; StackCount = 6
assign Var6, Var1
calculate Var6 + ( S32 1 )
pushtype String ; StackCount = 7
assign Var7, Arg4
pushvar Var4 ; StackCount = 8
call COPY
pop ; StackCount = 7
pop ; StackCount = 6
pop ; StackCount = 5
pop ; StackCount = 4
assign Var3, Var4
pop ; StackCount = 3
pushvar Var2 ; StackCount = 4
call TRIM
pop ; StackCount = 3
pop ; StackCount = 2
assign Arg5, Var2
pop ; StackCount = 1
pushtype UnicodeString ; StackCount = 2
pushtype UnicodeString ; StackCount = 3
pushtype String ; StackCount = 4
pushtype S32 ; StackCount = 5
assign Var5, Var1
calculate Var5 - ( S32 1 )
pushtype S32 ; StackCount = 6
assign Var6, ( S32 1 )
pushtype String ; StackCount = 7
assign Var7, Arg4
pushvar Var4 ; StackCount = 8
call COPY
pop ; StackCount = 7
pop ; StackCount = 6
pop ; StackCount = 5
pop ; StackCount = 4
assign Var3, Var4
pop ; StackCount = 3
pushvar Var2 ; StackCount = 4
call TRIM
pop ; StackCount = 3
pop ; StackCount = 2
assign Arg4, Var2
pop ; StackCount = 1
jump loc_9f0
loc_9e1:
assign Arg5, ( String "" )
loc_9f0:
pushtype String ; StackCount = 2
assign Var2, Arg3
pushvar Arg3 ; StackCount = 3
call LOWERCASE
pop ; StackCount = 2
pop ; StackCount = 1
ret
Functions[102] = external returnsval TRIM(out Arg1)
Functions[103] = external returnsval POS(out Arg1)
Functions[104] = external returnsval LOWERCASE(out Arg1)
Functions[105] = external returnsval COPY(out Arg1,out Arg2)
Functions[106] = external returnsval STRTOINTDEF(out Arg1)
Functions[107] = exported void DWINSHS_SETPROXY(in U8 Arg1,in U8 Arg2,in String Arg3,in S32 Arg4,in String Arg5,in String Arg6)
assign Global51[0], Arg1
assign Global51[1], Arg2
assign Global51[2], Arg3
assign Global51[3], Arg4
assign Global51[4], Arg5
assign Global51[5], Arg6
ret
Functions[108] = exported S32 CREATECONNECT(in String Arg1,in String Arg2,in U8 Arg3,out U32 Arg4,out U32 Arg5,out U32 Arg6,out S32 Arg7)
pushtype U8 ; StackCount = 1
pushtype String ; StackCount = 2
pushtype String ; StackCount = 3
pushtype String ; StackCount = 4
pushtype String ; StackCount = 5
pushtype String ; StackCount = 6
pushtype String ; StackCount = 7
pushtype S32 ; StackCount = 8
pushtype S32 ; StackCount = 9
pushtype String ; StackCount = 10
pushtype U32 ; StackCount = 11
pushtype U32 ; StackCount = 12
pushtype BOOLEAN ; StackCount = 13
pushtype Pointer ; StackCount = 14
setptr Var14, Var8
pushtype Pointer ; StackCount = 15
setptr Var15, Var7
pushtype Pointer ; StackCount = 16
setptr Var16, Var6
pushtype Pointer ; StackCount = 17
setptr Var17, Var5
pushtype Pointer ; StackCount = 18
setptr Var18, Var4
pushtype Pointer ; StackCount = 19
setptr Var19, Var3
pushtype Pointer ; StackCount = 20
setptr Var20, Var1
pushtype String ; StackCount = 21
assign Var21, Arg1
call PARSEURL
pop ; StackCount = 20
pop ; StackCount = 19
pop ; StackCount = 18
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
pop ; StackCount = 14
pop ; StackCount = 13
assign Arg7, ( S32 -1 )
assign RetVal, ( S32 1 )
assign Var10, ( String "0000" )
pushtype BOOLEAN ; StackCount = 14
pushtype U32 ; StackCount = 15
pushtype U32 ; StackCount = 16
assign Var16, ( S32 0 )
pushtype String ; StackCount = 17
assign Var17, Var10
pushvar Var15 ; StackCount = 18
call setup:wininet.dll!InternetGetConnectedState
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
assign Var14, Var15
pop ; StackCount = 14
logicalnot Var14
setflag not Var14
pop ; StackCount = 13
jumpflag loc_15b
ret
loc_15b:
assign RetVal, ( S32 2 )
pushtype Char ; StackCount = 14
pushtype S32 ; StackCount = 15
assign Var15, ( S32 1 )
pushtype Pointer ; StackCount = 16
setptr Var16, Var10
pushvar Var14 ; StackCount = 17
call STRGET
pop ; StackCount = 16
pop ; StackCount = 15
pop ; StackCount = 14
assign Var11, Var14
pop ; StackCount = 13
pushtype U32 ; StackCount = 14
pushtype Char ; StackCount = 15
pushtype S32 ; StackCount = 16
assign Var16, ( S32 2 )
pushtype Pointer ; StackCount = 17
setptr Var17, Var10
pushvar Var15 ; StackCount = 18
call STRGET
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
assign Var14, Var15
pop ; StackCount = 14
calculate Var14 * ( S32 256 )
calculate Var11 + Var14
pop ; StackCount = 13
pushtype U32 ; StackCount = 14
pushtype Char ; StackCount = 15
pushtype S32 ; StackCount = 16
assign Var16, ( S32 3 )
pushtype Pointer ; StackCount = 17
setptr Var17, Var10
pushvar Var15 ; StackCount = 18
call STRGET
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
assign Var14, Var15
pop ; StackCount = 14
calculate Var14 * ( S32 65536 )
calculate Var11 + Var14
pop ; StackCount = 13
pushtype U32 ; StackCount = 14
pushtype Char ; StackCount = 15
pushtype S32 ; StackCount = 16
assign Var16, ( S32 4 )
pushtype Pointer ; StackCount = 17
setptr Var17, Var10
pushvar Var15 ; StackCount = 18
call STRGET
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
assign Var14, Var15
pop ; StackCount = 14
calculate Var14 * ( S32 16777216 )
calculate Var11 + Var14
pop ; StackCount = 13
pushtype BOOLEAN ; StackCount = 14
pushtype U32 ; StackCount = 15
assign Var15, Var11
calculate Var15 & ( S32 32 )
compare Var14, Var15 != ( S32 0 )
pop ; StackCount = 14
setflag not Var14
pop ; StackCount = 13
jumpflag loc_325
ret
loc_325:
pushtype UnicodeString ; StackCount = 14
assign Var14, ( String "opening session..." )
call WDS_TRACEMSG
pop ; StackCount = 13
assign RetVal, ( S32 3 )
pushtype U8 ; StackCount = 14
assign Var14, Global51[0]
pushtype BOOLEAN ; StackCount = 15
compare Var15, ( U8 0 ) == Var14
jumpfalse Var15, loc_40b
pushtype U32 ; StackCount = 16
assign Var16, ( S32 0 )
pushtype String ; StackCount = 17
assign Var17, ( String "" )
pushtype String ; StackCount = 18
assign Var18, ( String "" )
pushtype U32 ; StackCount = 19
assign Var19, ( S32 0 )
pushtype String ; StackCount = 20
assign Var20, Arg2
pushvar Arg4 ; StackCount = 21
call setup:wininet.dll!InternetOpenA
pop ; StackCount = 20
pop ; StackCount = 19
pop ; StackCount = 18
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
jump loc_7be
loc_40b:
compare Var15, ( U8 1 ) == Var14
jumpfalse Var15, loc_49d
pushtype U32 ; StackCount = 16
assign Var16, ( S32 0 )
pushtype String ; StackCount = 17
assign Var17, ( String "" )
pushtype String ; StackCount = 18
assign Var18, ( String "" )
pushtype U32 ; StackCount = 19
assign Var19, ( S32 1 )
pushtype String ; StackCount = 20
assign Var20, Arg2
pushvar Arg4 ; StackCount = 21
call setup:wininet.dll!InternetOpenA
pop ; StackCount = 20
pop ; StackCount = 19
pop ; StackCount = 18
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
jump loc_7be
loc_49d:
compare Var15, ( U8 2 ) == Var14
jumpfalse Var15, loc_7be
pushtype U8 ; StackCount = 16
assign Var16, Global51[1]
pushtype BOOLEAN ; StackCount = 17
compare Var17, ( U8 0 ) == Var16
jumpfalse Var17, loc_506
assign Var2, ( String "HTTP" )
jump loc_53b
loc_506:
compare Var17, ( U8 1 ) == Var16
jumpfalse Var17, loc_53b
assign Var2, ( String "SOCKS" )
jump loc_53b
loc_53b:
pop ; StackCount = 16
pop ; StackCount = 15
pushtype U32 ; StackCount = 16
assign Var16, ( S32 0 )
pushtype String ; StackCount = 17
assign Var17, ( String "" )
pushtype String ; StackCount = 18
pushtype WideString ; StackCount = 19
pushtype String ; StackCount = 20
pushtype String ; StackCount = 21
assign Var21, Var2
calculate Var21 + ( Char '=' )
calculate Var21 + Var2
calculate Var21 + ( String "://" )
calculate Var21 + Global51[2]
assign Var20, Var21
pop ; StackCount = 20
calculate Var20 + ( Char ':' )
assign Var19, Var20
pop ; StackCount = 19
pushtype UnicodeString ; StackCount = 20
pushtype S64 ; StackCount = 21
assign Var21, Global51[3]
pushvar Var20 ; StackCount = 22
call INTTOSTR
pop ; StackCount = 21
pop ; StackCount = 20
calculate Var19 + Var20
pop ; StackCount = 19
assign Var18, Var19
pop ; StackCount = 18
pushtype U32 ; StackCount = 19
assign Var19, ( S32 3 )
pushtype String ; StackCount = 20
assign Var20, Arg2
pushvar Arg4 ; StackCount = 21
call setup:wininet.dll!InternetOpenA
pop ; StackCount = 20
pop ; StackCount = 19
pop ; StackCount = 18
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
pushtype BOOLEAN ; StackCount = 16
compare Var16, Global51[4] != ( String "" )
setflag not Var16
pop ; StackCount = 15
jumpflag loc_709
pushtype U32 ; StackCount = 16
pushtype U32 ; StackCount = 17
pushtype S32 ; StackCount = 18
pushtype String ; StackCount = 19
assign Var19, Global51[4]
pushvar Var18 ; StackCount = 20
call LENGTH
pop ; StackCount = 19
pop ; StackCount = 18
assign Var17, Var18
pop ; StackCount = 17
pushtype String ; StackCount = 18
assign Var18, Global51[4]
pushtype U32 ; StackCount = 19
assign Var19, ( S32 43 )
pushtype U32 ; StackCount = 20
assign Var20, Arg4
pushvar Var16 ; StackCount = 21
call setup:wininet.dll!InternetSetOptionA
pop ; StackCount = 20
pop ; StackCount = 19
pop ; StackCount = 18
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
loc_709:
pushtype BOOLEAN ; StackCount = 16
compare Var16, Global51[5] != ( String "" )
setflag not Var16
pop ; StackCount = 15
jumpflag loc_7b9
pushtype U32 ; StackCount = 16
pushtype U32 ; StackCount = 17
pushtype S32 ; StackCount = 18
pushtype String ; StackCount = 19
assign Var19, Global51[5]
pushvar Var18 ; StackCount = 20
call LENGTH
pop ; StackCount = 19
pop ; StackCount = 18
assign Var17, Var18
pop ; StackCount = 17
pushtype String ; StackCount = 18
assign Var18, Global51[5]
pushtype U32 ; StackCount = 19
assign Var19, ( S32 44 )
pushtype U32 ; StackCount = 20
assign Var20, Arg4
pushvar Var16 ; StackCount = 21
call setup:wininet.dll!InternetSetOptionA
pop ; StackCount = 20
pop ; StackCount = 19
pop ; StackCount = 18
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
loc_7b9:
jump loc_7be
loc_7be:
pop ; StackCount = 14
pop ; StackCount = 13
pushtype BOOLEAN ; StackCount = 14
compare Var14, Arg4 == ( S32 0 )
setflag not Var14
pop ; StackCount = 13
jumpflag loc_7e8
ret
loc_7e8:
assign RetVal, ( S32 4 )
pushtype U8 ; StackCount = 14
assign Var14, Var1
pushtype BOOLEAN ; StackCount = 15
compare Var15, ( U8 0 ) == Var14
jumptrue Var15, loc_84c
pushtype BOOLEAN ; StackCount = 16
compare Var16, ( U8 1 ) == Var14
calculate Var15 | Var16
pop ; StackCount = 15
loc_84c:
jumpfalse Var15, loc_8fb
pushtype U32 ; StackCount = 16
assign Var16, ( S32 0 )
pushtype U32 ; StackCount = 17
assign Var17, ( S32 0 )
pushtype U32 ; StackCount = 18
assign Var18, ( S32 3 )
pushtype String ; StackCount = 19
assign Var19, Var7
pushtype String ; StackCount = 20
assign Var20, Var6
pushtype U16 ; StackCount = 21
assign Var21, Var8
pushtype String ; StackCount = 22
assign Var22, Var3
pushtype U32 ; StackCount = 23
assign Var23, Arg4
pushvar Arg5 ; StackCount = 24
call setup:wininet.dll!InternetConnectA
pop ; StackCount = 23
pop ; StackCount = 22
pop ; StackCount = 21
pop ; StackCount = 20
pop ; StackCount = 19
pop ; StackCount = 18
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
jump loc_a20
loc_8fb:
compare Var15, ( U8 2 ) == Var14
jumpfalse Var15, loc_a20
pushtype BOOLEAN ; StackCount = 16
compare Var16, Arg3 == ( U8 3 )
setflag not Var16
pop ; StackCount = 15
jumpflag loc_94f
assign Var11, ( S32 134217728 )
jump loc_95e
loc_94f:
assign Var11, ( S32 0 )
loc_95e:
pushtype U32 ; StackCount = 16
assign Var16, ( S32 0 )
pushtype U32 ; StackCount = 17
pushtype S32 ; StackCount = 18
assign Var18, ( S32 536870912 )
calculate Var18 | Var11
assign Var17, Var18
pop ; StackCount = 17
pushtype U32 ; StackCount = 18
assign Var18, ( S32 1 )
pushtype String ; StackCount = 19
assign Var19, Var7
pushtype String ; StackCount = 20
assign Var20, Var6
pushtype U16 ; StackCount = 21
assign Var21, Var8
pushtype String ; StackCount = 22
assign Var22, Var3
pushtype U32 ; StackCount = 23
assign Var23, Arg4
pushvar Arg5 ; StackCount = 24
call setup:wininet.dll!InternetConnectA
pop ; StackCount = 23
pop ; StackCount = 22
pop ; StackCount = 21
pop ; StackCount = 20
pop ; StackCount = 19
pop ; StackCount = 18
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
jump loc_a20
loc_a20:
pop ; StackCount = 14
pop ; StackCount = 13
pushtype BOOLEAN ; StackCount = 14
compare Var14, Arg5 == ( S32 0 )
setflag not Var14
pop ; StackCount = 13
jumpflag loc_a6d
pushtype U32 ; StackCount = 14
pushtype U32 ; StackCount = 15
assign Var15, Arg4
pushvar Var14 ; StackCount = 16
call setup:wininet.dll!InternetCloseHandle
pop ; StackCount = 15
pop ; StackCount = 14
pop ; StackCount = 13
ret
loc_a6d:
pushtype UnicodeString ; StackCount = 14
assign Var14, ( String "acquiring stats..." )
call WDS_TRACEMSG
pop ; StackCount = 13
assign RetVal, ( S32 5 )
pushtype U8 ; StackCount = 14
assign Var14, Var1
pushtype BOOLEAN ; StackCount = 15
compare Var15, ( U8 0 ) == Var14
jumptrue Var15, loc_afd
pushtype BOOLEAN ; StackCount = 16
compare Var16, ( U8 1 ) == Var14
calculate Var15 | Var16
pop ; StackCount = 15
loc_afd:
jumpfalse Var15, loc_15a4
assign Var11, ( U32 2147483648 )
pushtype BOOLEAN ; StackCount = 16
compare Var16, Var1 == ( U8 1 )
setflag not Var16
pop ; StackCount = 15
jumpflag loc_b6a
calculate Var11 | ( S32 8388608 )
calculate Var11 | ( S32 4096 )
calculate Var11 | ( S32 8192 )
loc_b6a:
pushtype U8 ; StackCount = 16
assign Var16, Arg3
pushtype BOOLEAN ; StackCount = 17
compare Var17, ( U8 0 ) == Var16
jumpfalse Var17, loc_c93
pushtype BOOLEAN ; StackCount = 18
compare Var18, Var5 != ( String "" )
setflag not Var18
pop ; StackCount = 17
jumpflag loc_bdb
calculate Var4 + ( Char '?' )
calculate Var4 + Var5
loc_bdb:
pushtype U32 ; StackCount = 18
assign Var18, ( S32 0 )
pushtype U32 ; StackCount = 19
assign Var19, Var11
pushtype U32 ; StackCount = 20
assign Var20, ( S32 0 )
pushtype String ; StackCount = 21
assign Var21, ( String "" )
pushtype String ; StackCount = 22
assign Var22, ( String "HTTP/1.0" )
pushtype String ; StackCount = 23
assign Var23, Var4
pushtype String ; StackCount = 24
assign Var24, ( String "GET" )
pushtype U32 ; StackCount = 25
assign Var25, Arg5
pushvar Arg6 ; StackCount = 26
call setup:wininet.dll!HttpOpenRequestA
pop ; StackCount = 25
pop ; StackCount = 24
pop ; StackCount = 23
pop ; StackCount = 22
pop ; StackCount = 21
pop ; StackCount = 20
pop ; StackCount = 19
pop ; StackCount = 18
pop ; StackCount = 17
jump loc_d68
loc_c93:
compare Var17, ( U8 1 ) == Var16
jumpfalse Var17, loc_d68
pushtype U32 ; StackCount = 18
assign Var18, ( S32 0 )
pushtype U32 ; StackCount = 19
assign Var19, Var11
pushtype U32 ; StackCount = 20
assign Var20, ( S32 0 )
pushtype String ; StackCount = 21
assign Var21, ( String "" )
pushtype String ; StackCount = 22
assign Var22, ( String "HTTP/1.0" )
pushtype String ; StackCount = 23
assign Var23, Var4
pushtype String ; StackCount = 24
assign Var24, ( String "POST" )
pushtype U32 ; StackCount = 25
assign Var25, Arg5
pushvar Arg6 ; StackCount = 26
call setup:wininet.dll!HttpOpenRequestA
pop ; StackCount = 25
pop ; StackCount = 24
pop ; StackCount = 23
pop ; StackCount = 22
pop ; StackCount = 21
pop ; StackCount = 20
pop ; StackCount = 19
pop ; StackCount = 18
pop ; StackCount = 17
jump loc_d68
loc_d68:
pop ; StackCount = 16
pop ; StackCount = 15
pushtype BOOLEAN ; StackCount = 16
compare Var16, Arg6 == ( S32 0 )
setflag not Var16
pop ; StackCount = 15
jumpflag loc_e1a
pushtype S32 ; StackCount = 16
pushvar Var16 ; StackCount = 17
call DLLGETLASTERROR
pop ; StackCount = 16
pushtype UnicodeString ; StackCount = 17
assign Var17, ( String "HttpOpenRequest failed" )
call WDS_TRACEERROR
pop ; StackCount = 16
pop ; StackCount = 15
pushtype U32 ; StackCount = 16
pushtype U32 ; StackCount = 17
assign Var17, Arg5
pushvar Var16 ; StackCount = 18
call setup:wininet.dll!InternetCloseHandle
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
pushtype U32 ; StackCount = 16
pushtype U32 ; StackCount = 17
assign Var17, Arg4
pushvar Var16 ; StackCount = 18
call setup:wininet.dll!InternetCloseHandle
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
ret
loc_e1a:
assign RetVal, ( S32 6 )
pushtype U8 ; StackCount = 16
assign Var16, Arg3
pushtype BOOLEAN ; StackCount = 17
compare Var17, ( U8 0 ) == Var16
jumpfalse Var17, loc_f62
pushtype U32 ; StackCount = 18
pushtype U32 ; StackCount = 19
assign Var19, ( S32 0 )
pushtype String ; StackCount = 20
assign Var20, ( String "" )
pushtype U32 ; StackCount = 21
pushtype S32 ; StackCount = 22
pushtype String ; StackCount = 23
assign Var23, ( String "Content-Type: application/x-www-form-urlencoded" )
pushvar Var22 ; StackCount = 24
call LENGTH
pop ; StackCount = 23
pop ; StackCount = 22
assign Var21, Var22
pop ; StackCount = 21
pushtype String ; StackCount = 22
assign Var22, ( String "Content-Type: application/x-www-form-urlencoded" )
pushtype U32 ; StackCount = 23
assign Var23, Arg6
pushvar Var18 ; StackCount = 24
call setup:wininet.dll!HttpSendRequestA
pop ; StackCount = 23
pop ; StackCount = 22
pop ; StackCount = 21
pop ; StackCount = 20
pop ; StackCount = 19
pop ; StackCount = 18
assign Var13, Var18
pop ; StackCount = 17
jump loc_10a1
loc_f62:
compare Var17, ( U8 1 ) == Var16
jumpfalse Var17, loc_10a1
pushtype U32 ; StackCount = 18
pushtype U32 ; StackCount = 19
pushtype S32 ; StackCount = 20
pushtype String ; StackCount = 21
assign Var21, Var5
pushvar Var20 ; StackCount = 22
call LENGTH
pop ; StackCount = 21
pop ; StackCount = 20
assign Var19, Var20
pop ; StackCount = 19
pushtype String ; StackCount = 20
assign Var20, Var5
pushtype U32 ; StackCount = 21
pushtype S32 ; StackCount = 22
pushtype String ; StackCount = 23
assign Var23, ( String "Content-Type: application/x-www-form-urlencoded" )
pushvar Var22 ; StackCount = 24
call LENGTH
pop ; StackCount = 23
pop ; StackCount = 22
assign Var21, Var22
pop ; StackCount = 21
pushtype String ; StackCount = 22
assign Var22, ( String "Content-Type: application/x-www-form-urlencoded" )
pushtype U32 ; StackCount = 23
assign Var23, Arg6
pushvar Var18 ; StackCount = 24
call setup:wininet.dll!HttpSendRequestA
pop ; StackCount = 23
pop ; StackCount = 22
pop ; StackCount = 21
pop ; StackCount = 20
pop ; StackCount = 19
pop ; StackCount = 18
assign Var13, Var18
pop ; StackCount = 17
jump loc_10a1
loc_10a1:
pop ; StackCount = 16
pop ; StackCount = 15
pushtype BOOLEAN ; StackCount = 16
assign Var16, Var13
logicalnot Var16
setflag not Var16
pop ; StackCount = 15
jumpflag loc_1108
pushtype S32 ; StackCount = 16
pushvar Var16 ; StackCount = 17
call DLLGETLASTERROR
pop ; StackCount = 16
pushtype UnicodeString ; StackCount = 17
assign Var17, ( String "HttpSendRequest failed" )
call WDS_TRACEERROR
pop ; StackCount = 16
pop ; StackCount = 15
loc_1108:
pushtype BOOLEAN ; StackCount = 16
assign Var16, Var13
setflag not Var16
pop ; StackCount = 15
jumpflag loc_150e
pushtype S32 ; StackCount = 16
assign Var16, ( S32 4097 )
pushtype Pointer ; StackCount = 17
setptr Var17, Var10
call SETLENGTH
pop ; StackCount = 16
pop ; StackCount = 15
pusheh 0x380, 0xffffffff, 0xffffffff, 0x3ad
assign Var12, ( S32 4096 )
assign Var11, ( S32 0 )
pushtype BOOLEAN ; StackCount = 16
pushtype U32 ; StackCount = 17
pushtype Pointer ; StackCount = 18
setptr Var18, Var11
pushtype Pointer ; StackCount = 19
setptr Var19, Var12
pushtype String ; StackCount = 20
assign Var20, Var10
pushtype U32 ; StackCount = 21
assign Var21, ( S32 19 )
pushtype U32 ; StackCount = 22
assign Var22, Arg6
pushvar Var17 ; StackCount = 23
call setup:wininet.dll!HttpQueryInfoA
pop ; StackCount = 22
pop ; StackCount = 21
pop ; StackCount = 20
pop ; StackCount = 19
pop ; StackCount = 18
pop ; StackCount = 17
assign Var16, Var17
pop ; StackCount = 16
setflag not Var16
pop ; StackCount = 15
jumpflag loc_12c2
assign Var11, ( S32 0 )
assign Var9, ( S32 1 )
pushtype BOOLEAN ; StackCount = 16
loc_122a:
compare Var16, Var9 <= Var12
jumpfalse Var16, loc_12c1
calculate Var11 * ( S32 10 )
pushtype U32 ; StackCount = 17
pushtype Char ; StackCount = 18
pushtype S32 ; StackCount = 19
assign Var19, Var9
pushtype Pointer ; StackCount = 20
setptr Var20, Var10
pushvar Var18 ; StackCount = 21
call STRGET
pop ; StackCount = 20
pop ; StackCount = 19
pop ; StackCount = 18
assign Var17, Var18
pop ; StackCount = 17
calculate Var11 + Var17
pop ; StackCount = 16
calculate Var11 - ( S32 48 )
inc Var9
jump loc_122a
loc_12c1:
pop ; StackCount = 15
loc_12c2:
pushtype UnicodeString ; StackCount = 16
pushtype WideString ; StackCount = 17
assign Var17, ( String "HTTP_HEADER request status: " )
pushtype UnicodeString ; StackCount = 18
pushtype S64 ; StackCount = 19
assign Var19, Var11
pushvar Var18 ; StackCount = 20
call INTTOSTR
pop ; StackCount = 19
pop ; StackCount = 18
calculate Var17 + Var18
pop ; StackCount = 17
assign Var16, Var17
pop ; StackCount = 16
call WDS_TRACEMSG
pop ; StackCount = 15
pushtype BOOLEAN ; StackCount = 16
compare Var16, Var11 >= ( S32 400 )
setflag not Var16
pop ; StackCount = 15
jumpflag loc_136f
assign RetVal, Var11
jump loc_14df
loc_136f:
assign Var12, ( S32 4096 )
assign Var11, ( S32 0 )
pushtype BOOLEAN ; StackCount = 16
pushtype U32 ; StackCount = 17
pushtype Pointer ; StackCount = 18
setptr Var18, Var11
pushtype Pointer ; StackCount = 19
setptr Var19, Var12
pushtype String ; StackCount = 20
assign Var20, Var10
pushtype U32 ; StackCount = 21
assign Var21, ( S32 5 )
pushtype U32 ; StackCount = 22
assign Var22, Arg6
pushvar Var17 ; StackCount = 23
call setup:wininet.dll!HttpQueryInfoA
pop ; StackCount = 22
pop ; StackCount = 21
pop ; StackCount = 20
pop ; StackCount = 19
pop ; StackCount = 18
pop ; StackCount = 17
assign Var16, Var17
pop ; StackCount = 16
setflag not Var16
pop ; StackCount = 15
jumpflag loc_14d0
assign Arg7, ( S32 0 )
assign Var9, ( S32 1 )
pushtype BOOLEAN ; StackCount = 16
loc_1438:
compare Var16, Var9 <= Var12
jumpfalse Var16, loc_14cf
calculate Arg7 * ( S32 10 )
pushtype U32 ; StackCount = 17
pushtype Char ; StackCount = 18
pushtype S32 ; StackCount = 19
assign Var19, Var9
pushtype Pointer ; StackCount = 20
setptr Var20, Var10
pushvar Var18 ; StackCount = 21
call STRGET
pop ; StackCount = 20
pop ; StackCount = 19
pop ; StackCount = 18
assign Var17, Var18
pop ; StackCount = 17
calculate Arg7 + Var17
pop ; StackCount = 16
calculate Arg7 - ( S32 48 )
inc Var9
jump loc_1438
loc_14cf:
pop ; StackCount = 15
loc_14d0:
assign RetVal, ( S32 0 )
loc_14df:
popeh 0x0
pushtype S32 ; StackCount = 16
assign Var16, ( S32 0 )
pushtype Pointer ; StackCount = 17
setptr Var17, Var10
call SETLENGTH
pop ; StackCount = 16
pop ; StackCount = 15
popeh 0x1
loc_150e:
pushtype BOOLEAN ; StackCount = 16
compare Var16, RetVal != ( S32 0 )
setflag not Var16
pop ; StackCount = 15
jumpflag loc_159f
pushtype U32 ; StackCount = 16
pushtype U32 ; StackCount = 17
assign Var17, Arg5
pushvar Var16 ; StackCount = 18
call setup:wininet.dll!InternetCloseHandle
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
pushtype U32 ; StackCount = 16
pushtype U32 ; StackCount = 17
assign Var17, Arg4
pushvar Var16 ; StackCount = 18
call setup:wininet.dll!InternetCloseHandle
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
pushtype U32 ; StackCount = 16
pushtype U32 ; StackCount = 17
assign Var17, Arg6
pushvar Var16 ; StackCount = 18
call setup:wininet.dll!InternetCloseHandle
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
ret
loc_159f:
jump loc_16f2
loc_15a4:
compare Var15, ( U8 2 ) == Var14
jumpfalse Var15, loc_16f2
pushtype U32 ; StackCount = 16
assign Var16, ( S32 0 )
pushtype U32 ; StackCount = 17
assign Var17, ( S32 -2147483646 )
pushtype U32 ; StackCount = 18
assign Var18, ( U32 2147483648 )
pushtype String ; StackCount = 19
assign Var19, Var4
pushtype U32 ; StackCount = 20
assign Var20, Arg5
pushvar Arg6 ; StackCount = 21
call setup:wininet.dll!FtpOpenFileA
pop ; StackCount = 20
pop ; StackCount = 19
pop ; StackCount = 18
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
pushtype BOOLEAN ; StackCount = 16
compare Var16, Arg6 == ( S32 0 )
setflag not Var16
pop ; StackCount = 15
jumpflag loc_169b
pushtype U32 ; StackCount = 16
pushtype U32 ; StackCount = 17
assign Var17, Arg5
pushvar Var16 ; StackCount = 18
call setup:wininet.dll!InternetCloseHandle
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
pushtype U32 ; StackCount = 16
pushtype U32 ; StackCount = 17
assign Var17, Arg4
pushvar Var16 ; StackCount = 18
call setup:wininet.dll!InternetCloseHandle
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
ret
loc_169b:
pushtype U32 ; StackCount = 16
pushtype U32 ; StackCount = 17
assign Var17, ( S32 0 )
pushtype U32 ; StackCount = 18
assign Var18, Arg6
pushvar Var16 ; StackCount = 19
call setup:wininet.dll!FtpGetFileSize
pop ; StackCount = 18
pop ; StackCount = 17
pop ; StackCount = 16
assign Arg7, Var16
pop ; StackCount = 15
assign RetVal, ( S32 0 )
jump loc_16f2
loc_16f2:
pop ; StackCount = 14
pop ; StackCount = 13
ret
Functions[109] = external returnsval STRGET(in Arg1)
Functions[110] = external returnsval LENGTH()
Functions[111] = external returnsval DLLGETLASTERROR()
Functions[112] = external void SETLENGTH()
Functions[113] = exported S32 DWINSHS_GETREMOTESIZE(in String Arg1,in String Arg2,in U8 Arg3)
pushtype U32 ; StackCount = 1
pushtype U32 ; StackCount = 2
pushtype U32 ; StackCount = 3
pushtype S32 ; StackCount = 4
pushtype Pointer ; StackCount = 5
setptr Var5, RetVal
pushtype Pointer ; StackCount = 6
setptr Var6, Var3
pushtype Pointer ; StackCount = 7
setptr Var7, Var2
pushtype Pointer ; StackCount = 8
setptr Var8, Var1
pushtype U8 ; StackCount = 9
assign Var9, Arg3
pushtype String ; StackCount = 10
assign Var10, Arg2
pushtype String ; StackCount = 11
assign Var11, Arg1
pushvar Var4 ; StackCount = 12
call CREATECONNECT
pop ; StackCount = 11
pop ; StackCount = 10
pop ; StackCount = 9
pop ; StackCount = 8
pop ; StackCount = 7
pop ; StackCount = 6
pop ; StackCount = 5
pop ; StackCount = 4
pushtype BOOLEAN ; StackCount = 5
compare Var5, Var4 != ( S32 0 )
setflag not Var5
pop ; StackCount = 4
jumpflag loc_d0
assign RetVal, Var4
neg RetVal
ret
loc_d0:
pushtype U32 ; StackCount = 5
pushtype U32 ; StackCount = 6
assign Var6, Var2
pushvar Var5 ; StackCount = 7
call setup:wininet.dll!InternetCloseHandle
pop ; StackCount = 6
pop ; StackCount = 5
pop ; StackCount = 4
pushtype U32 ; StackCount = 5
pushtype U32 ; StackCount = 6
assign Var6, Var1
pushvar Var5 ; StackCount = 7
call setup:wininet.dll!InternetCloseHandle
pop ; StackCount = 6
pop ; StackCount = 5
pop ; StackCount = 4
pushtype U32 ; StackCount = 5
pushtype U32 ; StackCount = 6
assign Var6, Var3
pushvar Var5 ; StackCount = 7
call setup:wininet.dll!InternetCloseHandle
pop ; StackCount = 6
pop ; StackCount = 5
pop ; StackCount = 4
ret
Functions[114] = exported S32 DWINSHS_READREMOTEURL(in String Arg1,in String Arg2,in U8 Arg3,out String Arg4,out S32 Arg5,in UnicodeString Arg6,in ProcPtr Arg7)
pushtype U32 ; StackCount = 1
pushtype U32 ; StackCount = 2
pushtype U32 ; StackCount = 3
pushtype String ; StackCount = 4
pushtype String ; StackCount = 5
pushtype BOOLEAN ; StackCount = 6
pushtype U32 ; StackCount = 7
pushtype S32 ; StackCount = 8
pushtype S32 ; StackCount = 9
pushtype Pointer ; StackCount = 10
setptr Var10, Arg5
pushtype Pointer ; StackCount = 11
setptr Var11, Var3
pushtype Pointer ; StackCount = 12
setptr Var12, Var2
pushtype Pointer ; StackCount = 13
setptr Var13, Var1
pushtype U8 ; StackCount = 14
assign Var14, Arg3
pushtype String ; StackCount = 15
assign Var15, Arg2
pushtype String ; StackCount = 16
assign Var16, Arg1
pushvar RetVal ; StackCount = 17
call CREATECONNECT
pop ; StackCount = 16
pop ; StackCount = 15
pop ; StackCount = 14
pop ; StackCount = 13
pop ; StackCount = 12
pop ; StackCount = 11
pop ; StackCount = 10
pop ; StackCount = 9
pushtype BOOLEAN ; StackCount = 10
compare Var10, RetVal != ( S32 0 )
setflag not Var10
pop ; StackCount = 9
jumpflag loc_d8
ret
loc_d8:
pushtype S32 ; StackCount = 10
assign Var10, ( S32 4097 )
pushtype Pointer ; StackCount = 11
setptr Var11, Var4
call SETLENGTH
pop ; StackCount = 10
pop ; StackCount = 9
pusheh 0x6a7, 0xffffffff, 0xffffffff, 0x73d
pushtype UnicodeString ; StackCount = 10
pushtype WideString ; StackCount = 11
assign Var11, ( String "Connection established, starting download, total " )
pushtype UnicodeString ; StackCount = 12
pushtype S64 ; StackCount = 13
assign Var13, Arg5
pushvar Var12 ; StackCount = 14
call INTTOSTR
pop ; StackCount = 13
pop ; StackCount = 12
calculate Var11 + Var12
pop ; StackCount = 11
calculate Var11 + ( String " bytes" )
assign Var10, Var11
pop ; StackCount = 10
call WDS_TRACEMSG
pop ; StackCount = 9
assign Var9, ( S32 0 )
assign Var8, ( S32 0 )
assign Var6, ( U8 1 )
pushtype BOOLEAN ; StackCount = 10
loc_1e4:
assign Var10, Var6
jumpfalse Var10, loc_7b8
pushtype BOOLEAN ; StackCount = 11
pushtype U32 ; StackCount = 12
pushtype Pointer ; StackCount = 13
setptr Var13, Var7
pushtype U32 ; StackCount = 14
assign Var14, ( S32 4096 )
pushtype String ; StackCount = 15
assign Var15, Var4
pushtype U32 ; StackCount = 16
assign Var16, Var3
pushvar Var12 ; StackCount = 17
call setup:wininet.dll!InternetReadFile
pop ; StackCount = 16
pop ; StackCount = 15
pop ; StackCount = 14
pop ; StackCount = 13
pop ; StackCount = 12
assign Var11, Var12
pop ; StackCount = 11
setflag not Var11
pop ; StackCount = 10
jumpflag loc_661
pushtype BOOLEAN ; StackCount = 11
compare Var11, Var7 > ( S32 0 )
setflag not Var11
pop ; StackCount = 10
jumpflag loc_509
calculate Var8 + Var7
pushtype S32 ; StackCount = 11
assign Var11, Var7
pushtype S32 ; StackCount = 12
assign Var12, ( S32 1 )
pushtype String ; StackCount = 13
assign Var13, Var4
pushvar Var5 ; StackCount = 14
call COPY
pop ; StackCount = 13
pop ; StackCount = 12
pop ; StackCount = 11
pop ; StackCount = 10
pushtype BOOLEAN ; StackCount = 11
compare Var11, Arg6 != ( String "" )
setflag not Var11
pop ; StackCount = 10
jumpflag loc_42b
pushtype BOOLEAN ; StackCount = 11
compare Var11, Var9 == ( S32 0 )
jumpfalse Var11, loc_360
pushtype BOOLEAN ; StackCount = 12
pushtype UnicodeString ; StackCount = 13
assign Var13, Arg6
pushvar Var12 ; StackCount = 14
call FILEEXISTS
pop ; StackCount = 13
pop ; StackCount = 12
calculate Var11 & Var12
pop ; StackCount = 11
loc_360:
setflag not Var11
pop ; StackCount = 10
jumpflag loc_3b6
assign RetVal, ( S32 7 )
pushtype BOOLEAN ; StackCount = 11
pushtype UnicodeString ; StackCount = 12
assign Var12, Arg6
pushvar Var11 ; StackCount = 13
call DELETEFILE
pop ; StackCount = 12
pop ; StackCount = 11
logicalnot Var11
setflag not Var11
pop ; StackCount = 10
jumpflag loc_3b6
jump loc_7b8
loc_3b6:
assign RetVal, ( S32 8 )
pushtype BOOLEAN ; StackCount = 11
pushtype BOOLEAN ; StackCount = 12
compare Var12, Var9 != ( S32 0 )
pushtype String ; StackCount = 13
assign Var13, Var5
pushtype UnicodeString ; StackCount = 14
assign Var14, Arg6
pushvar Var11 ; StackCount = 15
call SAVESTRINGTOFILE
pop ; StackCount = 14
pop ; StackCount = 13
pop ; StackCount = 12
pop ; StackCount = 11
logicalnot Var11
setflag not Var11
pop ; StackCount = 10
jumpflag loc_42b
jump loc_7b8
loc_42b:
pushtype BOOLEAN ; StackCount = 11
pushtype ProcPtr ; StackCount = 12
compare Var11, Arg7 != Var12
pop ; StackCount = 11
setflag not Var11
pop ; StackCount = 10
jumpflag loc_4e9
pushtype Pointer ; StackCount = 11
setptr Var11, Var5
pushtype S32 ; StackCount = 12
assign Var12, Var7
pushtype S32 ; StackCount = 13
assign Var13, Var8
pushtype S32 ; StackCount = 14
assign Var14, Arg5
pushtype S32 ; StackCount = 15
assign Var15, Var9
pushtype U8 ; StackCount = 16
assign Var16, Arg3
pushtype String ; StackCount = 17
assign Var17, Arg2
pushtype String ; StackCount = 18
assign Var18, Arg1
pushvar Var6 ; StackCount = 19
callvar Arg7
pop ; StackCount = 18
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
pop ; StackCount = 14
pop ; StackCount = 13
pop ; StackCount = 12
pop ; StackCount = 11
pop ; StackCount = 10
loc_4e9:
calculate Arg4 + Var5
assign RetVal, ( S32 0 )
jump loc_5eb
loc_509:
assign Var5, ( String "" )
pushtype BOOLEAN ; StackCount = 11
pushtype ProcPtr ; StackCount = 12
compare Var11, Arg7 != Var12
pop ; StackCount = 11
setflag not Var11
pop ; StackCount = 10
jumpflag loc_5da
pushtype Pointer ; StackCount = 11
setptr Var11, Var5
pushtype S32 ; StackCount = 12
assign Var12, ( S32 0 )
pushtype S32 ; StackCount = 13
assign Var13, Var8
pushtype S32 ; StackCount = 14
assign Var14, Arg5
pushtype S32 ; StackCount = 15
assign Var15, Var9
pushtype U8 ; StackCount = 16
assign Var16, Arg3
pushtype String ; StackCount = 17
assign Var17, Arg2
pushtype String ; StackCount = 18
assign Var18, Arg1
pushvar Var6 ; StackCount = 19
callvar Arg7
pop ; StackCount = 18
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
pop ; StackCount = 14
pop ; StackCount = 13
pop ; StackCount = 12
pop ; StackCount = 11
pop ; StackCount = 10
loc_5da:
calculate Arg4 + Var5
jump loc_7b8
loc_5eb:
pushtype BOOLEAN ; StackCount = 11
assign Var11, Var6
logicalnot Var11
jumptrue Var11, loc_62f
pushtype BOOLEAN ; StackCount = 12
compare Var12, Global50 != ( U8 0 )
calculate Var11 | Var12
pop ; StackCount = 11
loc_62f:
setflag not Var11
pop ; StackCount = 10
jumpflag loc_657
assign Var6, ( U8 0 )
assign RetVal, ( S32 9 )
loc_657:
call DWINSHS_PROCESSMESSAGES
jump loc_7a3
loc_661:
assign Var5, ( String "" )
assign Arg4, ( String "" )
pushtype BOOLEAN ; StackCount = 11
compare Var11, Arg6 != ( String "" )
setflag not Var11
pop ; StackCount = 10
jumpflag loc_6c9
pushtype BOOLEAN ; StackCount = 11
pushtype UnicodeString ; StackCount = 12
assign Var12, Arg6
pushvar Var11 ; StackCount = 13
call DELETEFILE
pop ; StackCount = 12
pop ; StackCount = 11
pop ; StackCount = 10
loc_6c9:
pushtype BOOLEAN ; StackCount = 11
pushtype ProcPtr ; StackCount = 12
compare Var11, Arg7 != Var12
pop ; StackCount = 11
setflag not Var11
pop ; StackCount = 10
jumpflag loc_78f
pushtype Pointer ; StackCount = 11
setptr Var11, Var5
pushtype S32 ; StackCount = 12
assign Var12, ( S32 0 )
pushtype S32 ; StackCount = 13
assign Var13, Var8
pushtype S32 ; StackCount = 14
assign Var14, Arg5
pushtype S32 ; StackCount = 15
assign Var15, ( S32 -1 )
pushtype U8 ; StackCount = 16
assign Var16, Arg3
pushtype String ; StackCount = 17
assign Var17, Arg2
pushtype String ; StackCount = 18
assign Var18, Arg1
pushvar Var6 ; StackCount = 19
callvar Arg7
pop ; StackCount = 18
pop ; StackCount = 17
pop ; StackCount = 16
pop ; StackCount = 15
pop ; StackCount = 14
pop ; StackCount = 13
pop ; StackCount = 12
pop ; StackCount = 11
pop ; StackCount = 10
loc_78f:
assign RetVal, ( S32 10 )
jump loc_7b8
loc_7a3:
calculate Var9 + ( S32 1 )
jump loc_1e4
loc_7b8:
pop ; StackCount = 9
popeh 0x0
pushtype S32 ; StackCount = 10
assign Var10, ( S32 0 )
pushtype Pointer ; StackCount = 11
setptr Var11, Var4
call SETLENGTH
pop ; StackCount = 10
pop ; StackCount = 9
pushtype U32 ; StackCount = 10
pushtype U32 ; StackCount = 11
assign Var11, Var2
pushvar Var10 ; StackCount = 12
call setup:wininet.dll!InternetCloseHandle
pop ; StackCount = 11
pop ; StackCount = 10
pop ; StackCount = 9
pushtype U32 ; StackCount = 10
pushtype U32 ; StackCount = 11
assign Var11, Var1
pushvar Var10 ; StackCount = 12
call setup:wininet.dll!InternetCloseHandle
pop ; StackCount = 11
pop ; StackCount = 10
pop ; StackCount = 9
pushtype U32 ; StackCount = 10
pushtype U32 ; StackCount = 11
assign Var11, Var3
pushvar Var10 ; StackCount = 12
call setup:wininet.dll!InternetCloseHandle
pop ; StackCount = 11
pop ; StackCount = 10
pop ; StackCount = 9
popeh 0x1
ret
Functions[115] = external returnsval FILEEXISTS(out Arg1)
Functions[116] = external returnsval DELETEFILE(out Arg1)
Functions[117] = external returnsval SAVESTRINGTOFILE(out Arg1,out Arg2)
Functions[118] = external stdcall delayload returnsval {tmp}\b2p.dll!ImgLoad(out Arg1,out Arg2,out Arg3,out Arg4,out Arg5)
Functions[119] = external stdcall delayload void {tmp}\b2p.dll!ImgSetVisiblePart(out Arg1,out Arg2,out Arg3)
Functions[120] = external stdcall delayload void {tmp}\b2p.dll!ImgSetPosition(out Arg1,out Arg2,out Arg3)
Functions[121] = external stdcall delayload void {tmp}\b2p.dll!ImgSetVisibility(out Arg1)
Functions[122] = external stdcall delayload void {tmp}\b2p.dll!ImgRelease(out Arg1)
Functions[123] = external stdcall delayload void {tmp}\b2p.dll!ImgApplyChanges(out Arg1)
Functions[124] = external stdcall delayload returnsval {tmp}\b2p.dll!BtnCreate(out Arg1,out Arg2,out Arg3,out Arg4,out Arg5)
Functions[125] = external stdcall delayload void {tmp}\b2p.dll!BtnSetTextAlignment(out Arg1,out Arg2)
Functions[126] = external stdcall delayload void {tmp}\b2p.dll!BtnSetFont(out Arg1)
Functions[127] = external stdcall delayload void {tmp}\b2p.dll!BtnSetFontColor(out Arg1,out Arg2,out Arg3)
Functions[128] = external stdcall delayload returnsval {tmp}\b2p.dll!BtnGetVisibility(out Arg1)
Functions[129] = external stdcall delayload void {tmp}\b2p.dll!BtnSetVisibility(out Arg1)
Functions[130] = external stdcall delayload returnsval {tmp}\b2p.dll!BtnGetEnabled(out Arg1)
Functions[131] = external stdcall delayload void {tmp}\b2p.dll!BtnSetEnabled(out Arg1)
Functions[132] = external stdcall delayload returnsval {tmp}\b2p.dll!BtnGetChecked(out Arg1)
Functions[133] = external stdcall delayload void {tmp}\b2p.dll!BtnSetChecked(out Arg1)
Functions[134] = external stdcall delayload void {tmp}\b2p.dll!BtnSetEvent(out Arg1,out Arg2)
Functions[135] = external stdcall delayload void {tmp}\b2p.dll!BtnGetPosition(out Arg1,in Arg2,in Arg3)
Functions[136] = external stdcall delayload void {tmp}\b2p.dll!BtnSetPosition(out Arg1,out Arg2,out Arg3)
Functions[137] = external stdcall delayload void {tmp}\b2p.dll!BtnRefresh(out Arg1)
Functions[138] = external stdcall delayload void {tmp}\b2p.dll!BtnSetCursor(out Arg1)
Functions[139] = exported S32 IMGLOAD(in S32 Arg1,in UnicodeString Arg2,in S32 Arg3,in S32 Arg4,in S32 Arg5,in S32 Arg6,in BOOLEAN Arg7,in BOOLEAN Arg8)
pushtype String ; StackCount = 1
pushtype S32 ; StackCount = 2
pushtype BOOLEAN ; StackCount = 3
pushtype Pointer ; StackCount = 4
setptr Var4, Var1
pushtype UnicodeString ; StackCount = 5
assign Var5, Arg2
pushvar Var3 ; StackCount = 6
call LOADSTRINGFROMFILE
pop ; StackCount = 5
pop ; StackCount = 4
pop ; StackCount = 3
pop ; StackCount = 2
pushtype String ; StackCount = 3
assign Var3, Var1
pushvar Var2 ; StackCount = 4
call LENGTH
pop ; StackCount = 3
pop ; StackCount = 2
pushtype BOOLEAN ; StackCount = 3
assign Var3, Arg8
pushtype BOOLEAN ; StackCount = 4
assign Var4, Arg7
pushtype S32 ; StackCount = 5
assign Var5, Arg6
pushtype S32 ; StackCount = 6
assign Var6, Arg5
pushtype S32 ; StackCount = 7
assign Var7, Arg4
pushtype S32 ; StackCount = 8
assign Var8, Arg3
pushtype S32 ; StackCount = 9
assign Var9, Var2
pushtype String ; StackCount = 10
assign Var10, Var1
pushtype S32 ; StackCount = 11
assign Var11, Arg1
pushvar RetVal ; StackCount = 12
call {tmp}\b2p.dll!ImgLoad
pop ; StackCount = 11
pop ; StackCount = 10
pop ; StackCount = 9
pop ; StackCount = 8
pop ; StackCount = 7
pop ; StackCount = 6
pop ; StackCount = 5
pop ; StackCount = 4
pop ; StackCount = 3
pop ; StackCount = 2
ret
Functions[140] = external returnsval LOADSTRINGFROMFILE(out Arg1)
Functions[141] = exported S32 BTNCREATE(in S32 Arg1,in S32 Arg2,in S32 Arg3,in S32 Arg4,in S32 Arg5,in UnicodeString Arg6,in S32 Arg7,in BOOLEAN Arg8)
pushtype S32 ; StackCount = 1
pushtype String ; StackCount = 2
pushtype BOOLEAN ; StackCount = 3
pushtype Pointer ; StackCount = 4
setptr Var4, Var2
pushtype UnicodeString ; StackCount = 5
assign Var5, Arg6
pushvar Var3 ; StackCount = 6
call LOADSTRINGFROMFILE
pop ; StackCount = 5
pop ; StackCount = 4
pop ; StackCount = 3
pop ; StackCount = 2
pushtype String ; StackCount = 3
assign Var3, Var2
pushvar Var1 ; StackCount = 4
call LENGTH
pop ; StackCount = 3
pop ; StackCount = 2
pushtype BOOLEAN ; StackCount = 3
assign Var3, Arg8
pushtype S32 ; StackCount = 4
assign Var4, Arg7
pushtype S32 ; StackCount = 5
assign Var5, Var1
pushtype String ; StackCount = 6
assign Var6, Var2
pushtype S32 ; StackCount = 7
assign Var7, Arg5
pushtype S32 ; StackCount = 8
assign Var8, Arg4
pushtype S32 ; StackCount = 9
assign Var9, Arg3
pushtype S32 ; StackCount = 10
assign Var10, Arg2
pushtype S32 ; StackCount = 11
assign Var11, Arg1
pushvar RetVal ; StackCount = 12
call {tmp}\b2p.dll!BtnCreate
pop ; StackCount = 11
pop ; StackCount = 10
pop ; StackCount = 9
pop ; StackCount = 8
pop ; StackCount = 7
pop ; StackCount = 6
pop ; StackCount = 5
pop ; StackCount = 4
pop ; StackCount = 3
pop ; StackCount = 2
ret
Functions[142] = external stdcall delayload returnsval {tmp}\callbackctrl.dll!wrapcallbackaddr(out Arg1)
Functions[143] = external stdcall delayload returnsval {tmp}\callbackctrl.dll!wrapcallbackaddr(out Arg1)
Functions[144] = external stdcall delayload returnsval {tmp}\layered.dll!lStartup()
Functions[145] = external stdcall delayload void {tmp}\layered.dll!lShutdown()
Functions[146] = external stdcall delayload returnsval {tmp}\layered.dll!lTextureCreateW(out Arg1)
Functions[147] = external stdcall delayload returnsval {tmp}\layered.dll!lTextureWidth(out Arg1)
Functions[148] = external stdcall delayload returnsval {tmp}\layered.dll!lTextureHeight(out Arg1)
Functions[149] = external stdcall delayload returnsval {tmp}\layered.dll!lTextureDelete(out Arg1)
Functions[150] = external stdcall delayload returnsval {tmp}\layered.dll!lSceneCreate(out Arg1)
Functions[151] = external stdcall delayload returnsval {tmp}\layered.dll!lSceneDelete(out Arg1)
Functions[152] = external stdcall delayload returnsval {tmp}\layered.dll!lSceneAddlayer(out Arg1)
Functions[153] = external stdcall delayload void {tmp}\layered.dll!lSceneApply(out Arg1)
Functions[154] = external stdcall delayload void {tmp}\layered.dll!lSceneSetLong(out Arg1,out Arg2)
Functions[155] = exported void LSCENESETBRUSH(in S32 Arg1,in S32 Arg2)
pushtype U32 ; StackCount = 1
assign Var1, Arg2
pushtype S32 ; StackCount = 2
assign Var2, ( S32 2 )
pushtype S32 ; StackCount = 3
assign Var3, Arg1
call {tmp}\layered.dll!lSceneSetLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
ret
Functions[156] = exported void LSCENESETFONT(in S32 Arg1,in S32 Arg2)
pushtype U32 ; StackCount = 1
assign Var1, Arg2
pushtype S32 ; StackCount = 2
assign Var2, ( S32 3 )
pushtype S32 ; StackCount = 3
assign Var3, Arg1
call {tmp}\layered.dll!lSceneSetLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
ret
Functions[157] = exported void LSCENEMOVING(in S32 Arg1,in S32 Arg2,in S32 Arg3,in S32 Arg4,in S32 Arg5)
pushtype U32 ; StackCount = 1
pushtype S32 ; StackCount = 2
assign Var2, Arg2
pushtype S32 ; StackCount = 3
assign Var3, Arg4
calculate Var3 << ( S32 16 )
calculate Var2 | Var3
pop ; StackCount = 2
assign Var1, Var2
pop ; StackCount = 1
pushtype S32 ; StackCount = 2
assign Var2, ( S32 4 )
pushtype S32 ; StackCount = 3
assign Var3, Arg1
call {tmp}\layered.dll!lSceneSetLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
pushtype U32 ; StackCount = 1
pushtype S32 ; StackCount = 2
assign Var2, Arg3
pushtype S32 ; StackCount = 3
assign Var3, Arg5
calculate Var3 << ( S32 16 )
calculate Var2 | Var3
pop ; StackCount = 2
assign Var1, Var2
pop ; StackCount = 1
pushtype S32 ; StackCount = 2
assign Var2, ( S32 5 )
pushtype S32 ; StackCount = 3
assign Var3, Arg1
call {tmp}\layered.dll!lSceneSetLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
ret
Functions[158] = exported void LSCENESCALE(in S32 Arg1,in U32 Arg2)
pushtype U32 ; StackCount = 1
assign Var1, Arg2
pushtype S32 ; StackCount = 2
assign Var2, ( S32 6 )
pushtype S32 ; StackCount = 3
assign Var3, Arg1
call {tmp}\layered.dll!lSceneSetLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
ret
Functions[159] = external stdcall delayload returnsval {tmp}\layered.dll!lSolidBrushCreate(out Arg1)
Functions[160] = external stdcall delayload returnsval {tmp}\layered.dll!lTextureBrushCreate(out Arg1)
Functions[161] = external stdcall delayload returnsval {tmp}\layered.dll!lGradientBrushCreate(out Arg1,out Arg2,out Arg3)
Functions[162] = external stdcall delayload returnsval {tmp}\layered.dll!lBrushDelete(out Arg1)
Functions[163] = external stdcall delayload returnsval {tmp}\layered.dll!lFontCreate(out Arg1)
Functions[164] = external stdcall delayload returnsval {tmp}\layered.dll!lFontDelete(out Arg1)
Functions[165] = external stdcall delayload returnsval {tmp}\layered.dll!lDrawLine(out Arg1,out Arg2,out Arg3)
Functions[166] = external stdcall delayload returnsval {tmp}\layered.dll!lSetPixel(out Arg1,out Arg2)
Functions[167] = external stdcall delayload returnsval {tmp}\layered.dll!lDrawRectangle(out Arg1,out Arg2,out Arg3)
Functions[168] = external stdcall delayload returnsval {tmp}\layered.dll!lFillRectangle(out Arg1,out Arg2,out Arg3)
Functions[169] = external stdcall delayload returnsval {tmp}\layered.dll!lDrawEllipse(out Arg1,out Arg2,out Arg3)
Functions[170] = external stdcall delayload returnsval {tmp}\layered.dll!lFillEllipse(out Arg1,out Arg2,out Arg3)
Functions[171] = external stdcall delayload returnsval {tmp}\layered.dll!lImageTransparent(out Arg1)
Functions[172] = external stdcall delayload returnsval {tmp}\layered.dll!lDrawImage(out Arg1,out Arg2)
Functions[173] = external stdcall delayload returnsval {tmp}\layered.dll!lDrawImageRect(out Arg1,out Arg2,out Arg3)
Functions[174] = external stdcall delayload returnsval {tmp}\layered.dll!lDrawImageRectRect(out Arg1,out Arg2,out Arg3,out Arg4,out Arg5)
Functions[175] = external stdcall delayload returnsval {tmp}\layered.dll!lStringAlignment(out Arg1)
Functions[176] = external stdcall delayload returnsval {tmp}\layered.dll!lStringLineAlignment(out Arg1)
Functions[177] = external stdcall delayload returnsval {tmp}\layered.dll!lDrawStringRect(out Arg1,out Arg2,out Arg3,out Arg4)
Functions[178] = external stdcall delayload returnsval {tmp}\layered.dll!lMeasureText(out Arg1,out Arg2,out Arg3)
Functions[179] = external stdcall delayload returnsval {tmp}\layered.dll!lMeasureString(out Arg1,in Arg2)
Functions[180] = external stdcall delayload returnsval {tmp}\layered.dll!lImgLoad(out Arg1,out Arg2,out Arg3,out Arg4)
Functions[181] = external stdcall delayload returnsval {tmp}\layered.dll!lImgDelete(out Arg1)
Functions[182] = external stdcall delayload void {tmp}\layered.dll!lImgSetVisibility(out Arg1)
Functions[183] = external stdcall delayload returnsval {tmp}\layered.dll!lImgGetVisibility(out Arg1)
Functions[184] = external stdcall delayload void {tmp}\layered.dll!lImgSetVisiblePart(out Arg1,out Arg2,out Arg3)
Functions[185] = external stdcall delayload void {tmp}\layered.dll!lImgGetVisiblePart(out Arg1,in Arg2,in Arg3)
Functions[186] = external stdcall delayload void {tmp}\layered.dll!lImgSetPosition(out Arg1,out Arg2,out Arg3)
Functions[187] = external stdcall delayload void {tmp}\layered.dll!lImgGetPosition(out Arg1,in Arg2,in Arg3)
Functions[188] = external stdcall delayload void {tmp}\layered.dll!lImgSetTransparent(out Arg1)
Functions[189] = external stdcall delayload returnsval {tmp}\layered.dll!lImgGetTransparent(out Arg1)
Functions[190] = external stdcall delayload returnsval {tmp}\layered.dll!lStrLoad(out Arg1,out Arg2,out Arg3,out Arg4)
Functions[191] = external stdcall delayload returnsval {tmp}\layered.dll!lStrDelete(out Arg1)
Functions[192] = external stdcall delayload void {tmp}\layered.dll!lStrSetCaption(out Arg1)
Functions[193] = external stdcall delayload void {tmp}\layered.dll!lStrGetCaption(out Arg1)
Functions[194] = external stdcall delayload returnsval {tmp}\layered.dll!lStrLength(out Arg1)
Functions[195] = external stdcall delayload void {tmp}\layered.dll!lStrSetVisibility(out Arg1)
Functions[196] = external stdcall delayload returnsval {tmp}\layered.dll!lStrGetVisibility(out Arg1)
Functions[197] = external stdcall delayload void {tmp}\layered.dll!lStrSetPosition(out Arg1,out Arg2,out Arg3)
Functions[198] = external stdcall delayload void {tmp}\layered.dll!lStrGetPosition(out Arg1,in Arg2,in Arg3)
Functions[199] = external stdcall delayload void {tmp}\layered.dll!lStrSetBrush(out Arg1)
Functions[200] = external stdcall delayload void {tmp}\layered.dll!lStrSetFont(out Arg1)
Functions[201] = external stdcall delayload void {tmp}\layered.dll!lStrSetAlignment(out Arg1)
Functions[202] = external stdcall delayload void {tmp}\layered.dll!lStrSetLineAlignment(out Arg1)
Functions[203] = external stdcall delayload returnsval {tmp}\layered.dll!lCreateWindow(out Arg1,out Arg2,out Arg3)
Functions[204] = external stdcall delayload void {tmp}\layered.dll!lDestroyWindow(out Arg1)
Functions[205] = external stdcall delayload void {tmp}\layered.dll!lSetWindowText(out Arg1)
Functions[206] = external stdcall delayload returnsval {tmp}\layered.dll!lGetWindowTextLength(out Arg1)
Functions[207] = external stdcall delayload void {tmp}\layered.dll!lGetWindowText(out Arg1)
Functions[208] = external stdcall delayload void {tmp}\layered.dll!lSetWindowPos(out Arg1,out Arg2)
Functions[209] = external stdcall delayload void {tmp}\layered.dll!lGetWindowPos(out Arg1,in Arg2,in Arg3)
Functions[210] = external stdcall delayload void {tmp}\layered.dll!lSetWindowLong(out Arg1,out Arg2)
Functions[211] = external stdcall delayload returnsval {tmp}\layered.dll!lGetWindowLong(out Arg1)
Functions[212] = exported Record <S32,S32,S32,S32> LGETWINDOWPOS(in S32 Arg1)
pushtype S32 ; StackCount = 1
assign Var1, ( S32 -1 )
pushtype S32 ; StackCount = 2
assign Var2, Arg1
pushvar RetVal[0] ; StackCount = 3
call {tmp}\layered.dll!lGetWindowLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
pushtype S32 ; StackCount = 1
assign Var1, ( S32 -2 )
pushtype S32 ; StackCount = 2
assign Var2, Arg1
pushvar RetVal[1] ; StackCount = 3
call {tmp}\layered.dll!lGetWindowLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
pushtype S32 ; StackCount = 1
assign Var1, ( S32 -3 )
pushtype S32 ; StackCount = 2
assign Var2, Arg1
pushvar RetVal[2] ; StackCount = 3
call {tmp}\layered.dll!lGetWindowLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
pushtype S32 ; StackCount = 1
assign Var1, ( S32 -4 )
pushtype S32 ; StackCount = 2
assign Var2, Arg1
pushvar RetVal[3] ; StackCount = 3
call {tmp}\layered.dll!lGetWindowLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
ret
Functions[213] = exported void LSETWINDOWVISIBILITY(in S32 Arg1,in U32 Arg2)
pushtype BOOLEAN ; StackCount = 1
assign Var1, Arg2
setflag not Var1
pop ; StackCount = 0
jumpflag loc_62
pushtype S32 ; StackCount = 1
assign Var1, ( S32 1 )
pushtype S32 ; StackCount = 2
assign Var2, ( S32 8 )
pushtype S32 ; StackCount = 3
assign Var3, Arg1
call {tmp}\layered.dll!lSetWindowLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
jump loc_a2
loc_62:
pushtype S32 ; StackCount = 1
assign Var1, ( S32 0 )
pushtype S32 ; StackCount = 2
assign Var2, ( S32 8 )
pushtype S32 ; StackCount = 3
assign Var3, Arg1
call {tmp}\layered.dll!lSetWindowLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
loc_a2:
ret
Functions[214] = exported U32 LGETWINDOWVISIBILITY(in S32 Arg1)
pushtype S32 ; StackCount = 1
pushtype S32 ; StackCount = 2
assign Var2, ( S32 8 )
pushtype S32 ; StackCount = 3
assign Var3, Arg1
pushvar Var1 ; StackCount = 4
call {tmp}\layered.dll!lGetWindowLong
pop ; StackCount = 3
pop ; StackCount = 2
pop ; StackCount = 1
pushtype BOOLEAN ; StackCount = 2
compare Var2, Var1 == ( S32 0 )
setflag not Var2
pop ; StackCount = 1
jumpflag loc_6f
assign RetVal, ( U8 0 )
jump loc_7b
loc_6f:
assign RetVal, ( U8 1 )
loc_7b:
ret
Functions[215] = exported void LSETWINDOWENABLED(in S32 Arg1,in U32 Arg2)
pushtype BOOLEAN ; StackCount = 1
assign Var1, Arg2
setflag not Var1
pop ; StackCount = 0
jumpflag loc_62
pushtype S32 ; StackCount = 1
assign Var1, ( S32 1 )
pushtype S32 ; StackCount = 2
assign Var2, ( S32 7 )
pushtype S32 ; StackCount = 3
assign Var3, Arg1
call {tmp}\layered.dll!lSetWindowLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
jump loc_a2
loc_62:
pushtype S32 ; StackCount = 1
assign Var1, ( S32 0 )
pushtype S32 ; StackCount = 2
assign Var2, ( S32 7 )
pushtype S32 ; StackCount = 3
assign Var3, Arg1
call {tmp}\layered.dll!lSetWindowLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
loc_a2:
ret
Functions[216] = exported U32 LGETWINDOWENABLED(in S32 Arg1)
pushtype S32 ; StackCount = 1
pushtype S32 ; StackCount = 2
assign Var2, ( S32 7 )
pushtype S32 ; StackCount = 3
assign Var3, Arg1
pushvar Var1 ; StackCount = 4
call {tmp}\layered.dll!lGetWindowLong
pop ; StackCount = 3
pop ; StackCount = 2
pop ; StackCount = 1
pushtype BOOLEAN ; StackCount = 2
compare Var2, Var1 == ( S32 0 )
setflag not Var2
pop ; StackCount = 1
jumpflag loc_6f
assign RetVal, ( U8 0 )
jump loc_7b
loc_6f:
assign RetVal, ( U8 1 )
loc_7b:
ret
Functions[217] = exported void LSETBTNCHECKED(in S32 Arg1,in U32 Arg2)
pushtype BOOLEAN ; StackCount = 1
assign Var1, Arg2
setflag not Var1
pop ; StackCount = 0
jumpflag loc_62
pushtype S32 ; StackCount = 1
assign Var1, ( S32 1 )
pushtype S32 ; StackCount = 2
assign Var2, ( S32 9 )
pushtype S32 ; StackCount = 3
assign Var3, Arg1
call {tmp}\layered.dll!lSetWindowLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
jump loc_a2
loc_62:
pushtype S32 ; StackCount = 1
assign Var1, ( S32 0 )
pushtype S32 ; StackCount = 2
assign Var2, ( S32 9 )
pushtype S32 ; StackCount = 3
assign Var3, Arg1
call {tmp}\layered.dll!lSetWindowLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
loc_a2:
ret
Functions[218] = exported U32 LGETBTNCHECKED(in S32 Arg1)
pushtype S32 ; StackCount = 1
pushtype S32 ; StackCount = 2
assign Var2, ( S32 9 )
pushtype S32 ; StackCount = 3
assign Var3, Arg1
pushvar Var1 ; StackCount = 4
call {tmp}\layered.dll!lGetWindowLong
pop ; StackCount = 3
pop ; StackCount = 2
pop ; StackCount = 1
pushtype BOOLEAN ; StackCount = 2
compare Var2, Var1 == ( S32 0 )
setflag not Var2
pop ; StackCount = 1
jumpflag loc_6f
assign RetVal, ( U8 0 )
jump loc_7b
loc_6f:
assign RetVal, ( U8 1 )
loc_7b:
ret
Functions[219] = exported void LSETPROGRESSVALUE(in S32 Arg1,in S32 Arg2)
pushtype S32 ; StackCount = 1
assign Var1, Arg2
pushtype S32 ; StackCount = 2
assign Var2, ( S32 1 )
pushtype S32 ; StackCount = 3
assign Var3, Arg1
call {tmp}\layered.dll!lSetWindowLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
ret
Functions[220] = exported S32 LGETPROGRESSVALUE(in S32 Arg1)
pushtype S32 ; StackCount = 1
assign Var1, ( S32 1 )
pushtype S32 ; StackCount = 2
assign Var2, Arg1
pushvar RetVal ; StackCount = 3
call {tmp}\layered.dll!lGetWindowLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
ret
Functions[221] = exported void LSETPROGRESSMAX(in S32 Arg1,in S32 Arg2)
pushtype S32 ; StackCount = 1
assign Var1, Arg2
pushtype S32 ; StackCount = 2
assign Var2, ( S32 2 )
pushtype S32 ; StackCount = 3
assign Var3, Arg1
call {tmp}\layered.dll!lSetWindowLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
ret
Functions[222] = exported S32 LGETPROGRESSMAX(in S32 Arg1)
pushtype S32 ; StackCount = 1
assign Var1, ( S32 2 )
pushtype S32 ; StackCount = 2
assign Var2, Arg1
pushvar RetVal ; StackCount = 3
call {tmp}\layered.dll!lGetWindowLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
ret
Functions[223] = exported void LSETPROGRESSSTATE(in S32 Arg1,in S32 Arg2)
pushtype S32 ; StackCount = 1
assign Var1, Arg2
pushtype S32 ; StackCount = 2
assign Var2, ( S32 3 )
pushtype S32 ; StackCount = 3
assign Var3, Arg1
call {tmp}\layered.dll!lSetWindowLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
ret
Functions[224] = exported S32 LGETPROGRESSSTATE(in S32 Arg1)
pushtype S32 ; StackCount = 1
assign Var1, ( S32 3 )
pushtype S32 ; StackCount = 2
assign Var2, Arg1
pushvar RetVal ; StackCount = 3
call {tmp}\layered.dll!lGetWindowLong
pop ; StackCount = 2
pop ; StackCount = 1
pop ; StackCount = 0
ret
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment