AI Porn is here, Create and Fap TRY FREE
x

Trypophobian

New Member
Oct 1, 2019
4
2
98
Finished the game after picking it up in 2013 and dropping it for reasons I can't remember.
I managed to get one the "true" endings (where you chose between the pink pill and the blue pill), and I absolutely refuse to play this game a second time. This is one of those stories that I can't bring myself to read twice, the emotional damage is too great.

The writing is really good, I stopped caring about the sex and was genuinely interested in the story and characters. It's a text-based porn game, and boy does it fucking deliver on the text. Yes, some of the dead-end endings are depressing, but some of them give some insight into the who "you" are and Lith. As well as the weird cyberspace you exist in.
To anyone who stumbles upon this game, do not spoil yourself or follow guides, trust me, it's better that you experience this %100 blind.

TL;DR
This game cured my horny, and now I'm sad.
 

PBS666

Engaged Member
Feb 19, 2019
3,640
3,442
448
Finished the game after picking it up in 2013 and dropping it for reasons I can't remember.
I managed to get one the "true" endings (where you chose between the pink pill and the blue pill), and I absolutely refuse to play this game a second time. This is one of those stories that I can't bring myself to read twice, the emotional damage is too great.

The writing is really good, I stopped caring about the sex and was genuinely interested in the story and characters. It's a text-based porn game, and boy does it fucking deliver on the text. Yes, some of the dead-end endings are depressing, but some of them give some insight into the who "you" are and Lith. As well as the weird cyberspace you exist in.
To anyone who stumbles upon this game, do not spoil yourself or follow guides, trust me, it's better that you experience this %100 blind.

TL;DR
This game cured my horny, and now I'm sad.
FYI, there is a hidden ending that isn't so depressing. I would call that the good true ending.
 
  • Like
Reactions: II_Gordianus_II

lolidk562

Newbie
Aug 24, 2021
21
8
93
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.
can someone help me with getting all of the images from the game?
 
4.20 star(s) 21 Votes