If you open the swf file with decompiler, you can see 5 splitted binaries and 5 corresponding packages, with a loader package.
Let's take a look at somewhat decode function. (As some lines aren't correctly decompiled, you need to analyze the P-Code)
JavaScript:
public function OGHN3KnSVvz0sQ0C()
{
super();
this.loader = new Loader();
addEventListener(Event.ENTER_FRAME,this.enterFrame,false,0,true);
if(stage)
{
stage.addChildAt(this.loader,0);
}
new ByteArray().endian = Endian.LITTLE_ENDIAN;
new ByteArray().length = 2 << 24 | 40 << 16 | 152 << 8 | 223;
new ByteArray().position = 1 << 24 | 29 << 16 | 203 << 8 | 220;
new C0a4qGL6E9N1Ijaj().endian = Endian.LITTLE_ENDIAN;
new ByteArray().writeBytes(new C0a4qGL6E9N1Ijaj(),0,0 << 24 | 75 << 16 | 140 << 8 | 230);
new ByteArray().position = 0 << 24 | 120 << 16 | 114 << 8 | 235;
new §4l9JT7u2nN1ZFk+5§().endian = Endian.LITTLE_ENDIAN;
new ByteArray().writeBytes(new §4l9JT7u2nN1ZFk+5§(),0,0 << 24 | 165 << 16 | 88 << 8 | 241);
new ByteArray().position = 2 << 24 | 0 << 16 | 114 << 8 | 142;
new §l/YEs377IakicDh/§().endian = Endian.LITTLE_ENDIAN;
new ByteArray().writeBytes(new §l/YEs377IakicDh/§(),0,0 << 24 | 40 << 16 | 38 << 8 | 81);
new ByteArray().position = 1 << 24 | 105 << 16 | 88 << 8 | 194;
new §1yuFsiV+nT7VvVWI§().endian = Endian.LITTLE_ENDIAN;
new ByteArray().writeBytes(new §1yuFsiV+nT7VvVWI§(),0,0 << 24 | 151 << 16 | 25 << 8 | 204);
new ByteArray().position = 0;
new R3kyRgHchoEbxuhr().endian = Endian.LITTLE_ENDIAN;
new ByteArray().writeBytes(new R3kyRgHchoEbxuhr(),0,0 << 24 | 120 << 16 | 114 << 8 | 235);
new ByteArray().position = 0 << 24 | 103 << 16 | 156 << 8 | 169;
new ByteArray().writeUnsignedInt(51 << 24 | 205 << 16 | 230 << 8 | 166);
new ByteArray().position = 1 << 24 | 160 << 16 | 155 << 8 | 61;
new ByteArray().writeUnsignedInt(196 << 24 | 198 << 16 | 235 << 8 | 138);
new ByteArray().position = 0 << 24 | 183 << 16 | 122 << 8 | 192;
new ByteArray().writeUnsignedInt(162 << 24 | 134 << 16 | 106 << 8 | 43);
new ByteArray().position = 0 << 24 | 133 << 16 | 213 << 8 | 5;
new ByteArray().writeUnsignedInt(250 << 24 | 216 << 16 | 103 << 8 | 27);
new ByteArray().position = 0 << 24 | 82 << 16 | 6 << 8 | 176;
new ByteArray().writeUnsignedInt(120 << 24 | 206 << 16 | 59 << 8 | 39);
new ByteArray().position = 0 << 24 | 15 << 16 | 28 << 8 | 45;
new ByteArray().writeUnsignedInt(111 << 24 | 51 << 16 | 234 << 8 | 22);
new ByteArray().position = 0 << 24 | 226 << 16 | 166 << 8 | 177;
new ByteArray().writeUnsignedInt(254 << 24 | 145 << 16 | 39 << 8 | 195);
new ByteArray().position = 1 << 24 | 59 << 16 | 39 << 8 | 44;
new ByteArray().writeUnsignedInt(119 << 24 | 240 << 16 | 153 << 8 | 117);
new ByteArray().position = 1 << 24 | 102 << 16 | 83 << 8 | 30;
new ByteArray().writeUnsignedInt(143 << 24 | 25 << 16 | 225 << 8 | 2);
var _loc2_:* = new ByteArray();
_loc2_.position = 0;
var _loc3_:int = 0;
var _loc4_:* = 0 << 24 | 194 << 16 | 69 << 8 | 190;
do
{
_loc2_.position = _loc3_;
_loc2_.writeByte(§§pop() ^ _loc2_.readUnsignedByte());
_loc3_++;
§§push(§§pop() ^ (§§pop() ^ _loc2_.readUnsignedByte()));
}
while(_loc3_ < _loc4_);
77;
this.loader.loadBytes(_loc2_);
}
That code briefly means...
JavaScript:
public function OGHN3KnSVvz0sQ0C()
{
super();
this.loader = new Loader();
addEventListener(Event.ENTER_FRAME,this.enterFrame,false,0,true);
if(stage)
{
stage.addChildAt(this.loader,0);
}
var _loc2_:* = new ByteArray();
_loc2_.endian = Endian.LITTLE_ENDIAN;
_loc2_.length = 2 << 24 | 40 << 16 | 152 << 8 | 223;
_loc2_.position = 0;
new R3kyRgHchoEbxuhr().endian = Endian.LITTLE_ENDIAN;
_loc2_.writeBytes(new R3kyRgHchoEbxuhr(),0,0 << 24 | 120 << 16 | 114 << 8 | 235);
_loc2_.position = 0 << 24 | 120 << 16 | 114 << 8 | 235;
new §4l9JT7u2nN1ZFk+5§().endian = Endian.LITTLE_ENDIAN;
_loc2_.writeBytes(new §4l9JT7u2nN1ZFk+5§(),0,0 << 24 | 165 << 16 | 88 << 8 | 241);
_loc2_.position = 1 << 24 | 29 << 16 | 203 << 8 | 220;
new C0a4qGL6E9N1Ijaj().endian = Endian.LITTLE_ENDIAN;
_loc2_.writeBytes(new C0a4qGL6E9N1Ijaj(),0,0 << 24 | 75 << 16 | 140 << 8 | 230);
_loc2_.position = 1 << 24 | 105 << 16 | 88 << 8 | 194;
new §1yuFsiV+nT7VvVWI§().endian = Endian.LITTLE_ENDIAN;
_loc2_.writeBytes(new §1yuFsiV+nT7VvVWI§(),0,0 << 24 | 151 << 16 | 25 << 8 | 204);
_loc2_.position = 2 << 24 | 0 << 16 | 114 << 8 | 142;
new §l/YEs377IakicDh/§().endian = Endian.LITTLE_ENDIAN;
_loc2_.writeBytes(new §l/YEs377IakicDh/§(),0,0 << 24 | 40 << 16 | 38 << 8 | 81);
_loc2_.position = 0 << 24 | 103 << 16 | 156 << 8 | 169;
_loc2_.writeUnsignedInt(51 << 24 | 205 << 16 | 230 << 8 | 166);
_loc2_.position = 1 << 24 | 160 << 16 | 155 << 8 | 61;
_loc2_.writeUnsignedInt(196 << 24 | 198 << 16 | 235 << 8 | 138);
_loc2_.position = 0 << 24 | 183 << 16 | 122 << 8 | 192;
_loc2_.writeUnsignedInt(162 << 24 | 134 << 16 | 106 << 8 | 43);
_loc2_.position = 0 << 24 | 133 << 16 | 213 << 8 | 5;
_loc2_.writeUnsignedInt(250 << 24 | 216 << 16 | 103 << 8 | 27);
_loc2_.position = 0 << 24 | 82 << 16 | 6 << 8 | 176;
_loc2_.writeUnsignedInt(120 << 24 | 206 << 16 | 59 << 8 | 39);
_loc2_.position = 0 << 24 | 15 << 16 | 28 << 8 | 45;
_loc2_.writeUnsignedInt(111 << 24 | 51 << 16 | 234 << 8 | 22);
_loc2_.position = 0 << 24 | 226 << 16 | 166 << 8 | 177;
_loc2_.writeUnsignedInt(254 << 24 | 145 << 16 | 39 << 8 | 195);
_loc2_.position = 1 << 24 | 59 << 16 | 39 << 8 | 44;
_loc2_.writeUnsignedInt(119 << 24 | 240 << 16 | 153 << 8 | 117);
_loc2_.position = 1 << 24 | 102 << 16 | 83 << 8 | 30;
_loc2_.writeUnsignedInt(143 << 24 | 25 << 16 | 225 << 8 | 2);
_loc2_.position = 0;
var _loc3_:int = 0;
var _loc4_:* = 0 << 24 | 194 << 16 | 69 << 8 | 190;
var _loc5_:uint = 77;
do
{
_loc2_.position = _loc3_;
_loc2_.writeByte(_loc5_ ^ _loc2_.readUnsignedByte());
_loc3_++;
_loc5_ = _loc5_ ^ _loc2_.readUnsignedByte();
}
while(_loc3_ < _loc4_);
this.loader.loadBytes(_loc2_);
}
That function decodes the encoded binary data.
You can do the same thing with external tools and some scripts.
Then, you will obtain the container swf file.
By opening the container by some flash decompilers, you will get the main swf file.
You can extract the resources from the main swf file.