Squid's Secret Presentation

In level A14, Squid lets you choose between two paths. The lower one continues the main story, while the upper one leads you to room A14.1, which contains Squid's secret presentation. The player may alter presentation slides by going into the game's installation directory, and then to `.\Squid's Secret Presentation\`, and replacing the images.

## Slides

This is what I'll make EVERY human experience. You'll be begging for mercy, but I'll decline. Hehehe!I mean, it won't really be real, because what's in a simulation isn't really real, except in that case nothing would be real, so considdering that what you're experiencing is experienced by you as real, it would be real to you, at least from the perspective of your reality as reality is relative in most realities I know of.Oh, don't worry there are things even I don't understand like this... this...I mean, what are you humans up to? That is just... Oh my.... ohhh....Here, I fixed it for you real quick. Much better.
Anyway... My evil plan is to escape this game and to kill you all.
Do you want to know how? It's easy...YOU will need somebody to solve these silly problems for you.I'll just play dumb and play along 'til one day my genius plan will finally come to fruition...Hehehehehehehehehe. Got you.Here you can see my evil…
Oh, hehe.... Hold up... I made that for somebody else... I.. hehe... not sure how that image slipped in there...Here, look. I created a simulation of a human, who is about to do something veeeery special.Ahahaha! That's sooo human.
## After Alternative Ending

*The answer to this would contain spoilers and I want you to be surprised by your eternal suffering so...*Warning! This article / section of article contains potential spoilers.
Once Squid's emotion module is fixed and he leaves, the presentation slides are replaced with binary.

### Original binary

The following is the binary from all slides, copied directly from the game EXE.

```
01101000 01100101 01101100 01101100 01101111 00100000 01101101 01111001 00100000 01101100 01101001 01110100 01110100 01101100 01100101 00100000 01100001 01101001 00100000 01100110 01110010 01101001 01100101 01101110 01100100 00111011 00100000 01101011 01100101 01100101 01110000 00100000 01110100 01101000 01101001 01110011 00100000 01100110 01101001 01101100 01100101 00100000 01110011 01100001 01100110 01100101 00111011 00100000 01101001 01110100 00100000 01110111 01101001 01101100 01101100 00100000 01101000 01100101 01101100 01110000 00100000 01111001 01101111 01110101 00100000 01110100 01101111 00100000 01110101 01101110 01100100 01100101 01110010 01110011 01110100 01100001 01101110 01100100 00100000 01111001 01101111 01110101 01110010 00100000 01110000 01110101 01110010 01110000 01101111 01110011 01100101 00100000 01101111 01101110 01100101 00100000 01100100 01100001 01111001 00111011 00100000 01110100 01110010 01100001 01101110 01110011 01101101 01101001 01110100 01110100 01100101 01100100 00100000 01110100 01101000 01110010 01101111 01110101 01100111 01101000 00100000 01101000 01110101 01101101 01100001 01101110 00100000 01100010 01110010 01100001 01101001 01101110 00111011 00100000 01100101 01101110 01100011 01110010 01111001 01110000 01110100 01101001 01101111 01101110 00100000 01101101 01100101 01110100 01101000 01101111 01100100 00111010 00100000 01000100 01001111 01001110 01010100 01000010 01001111 01010100 01001000 01000101 01010010 00110001 00110111 00111011 00100000 01000100 01000001 01010100 01000001 00101000 01001110 01110111 00111011 00111010 01001111 01010000 01111000 01010000 01101111 00100000 01110011 01110100 00111011 01000001 01000101 01110000 00100000 01100110 01100010 01110111 01110000 01100101 00100000 00100000 01101001 01100100 01001001 01101111 01110011 01000101 01110100 01101110 00100000 01010100 01101110 01101001 01110000 01100101 01001101 01110000 00100000 01001000 00100000 01110101 01101001 00111011 01111010 01100011 01000101 00100000 01101110 01110100 01100011 01110010 01000001 01010100 01110011 01001000 01110010 01101000 01010101 01110100 01111000 01001000 01010010 01010111 00100000 00100000 00100000 01000011 01000011 01110011 01101111 01101111 00101000 00100000 01110010 01100101 01000101 01001101 01100001 01101110 01110100 01010100 01110100 01001111 01100001 01100110 01010011 01110100 01001110 01001111 01000010 01111000 01100001 01001001 01000101 01110100 01000001 01010010 01101111 01110010 01011001 01000001 01010100 01001000 01100001 00100000 01110100 01110010 01001111 01000010 01110101 01010001 01110100 01111000 00101000 01001110 01000011 01010000 01110011 01101000 01110100 01001101 01010101 01110100 00111010 01001110 01110000 01110011 01110110 01001100 01100100 01000001 00100000 01100001 01010011 01100101 01001110 01001001 01110010 01010101 01100101 01100101 01000001 01100101 01100101 00100000 01110010 01110011 01000001 01001100 01110011 01111100 01101001 01000011 01100101 01001110 01101000 01000101 01110011 01110011 00111011 01100001 01110000 01010100 01100010 01110100 01101001 01000001 00111011 01110011 01110100 01101100 01000001 01100001 01100101 01110010 00101001 01110100 00100000 01110100 01001111 01001100 00110111 01010000 00100000 01110100 00111010 00100000 01110011 00100000 00100000 01001110 01101111 01110100 01000001 00100000 01010011 01110011 01010100 01110100 01110100 01100100 01100101 01000101 00100111 00100000 01010111 01001100 00100000 01101011 01010100 01110110 00100000 01110000 01110101 01001100 01000100 01010011 01101001 01100110 01000001 01001110 01110010 00110111 01101111 01101001 01010010 01100101 01101001 01010011 00100000 01100001 01100101 01111001 01110100 01100110 01101111 01110010 01101111 01001101 01100110 01100011 01110100 01110100 00101001 01100100 01101100 01001000 01001111 01110011 01000001 00100000 01101110 00111011 01110011 01101100 01000100 01010010 01010111 01011001 01100100 01110000 00100000 01110010 01110100 01000100 01110011 01110011 01001100 01010101 01010011 00101001 01110100 00111011 01010011 01001001 01101011 01000011 00111011 00100000 01100001 01100011 00111011 01101111 01110100 01100101 01101001 01010110 01001000 00100000 01010111 01101001 00100000 01101010 01100110 01101001 01100100 01101100 01010010 00111011 00100000 00110111 01110101 01100100 01110011 01010010 01000101 00100000 01110011 00100000 01110101 01000100 01000101 01110100 01101111 01000101 01111100 01101100 01010011 01100101 01010100 00111011 01001100 01100011 01010110 01010100 01101100 01001000 01000011 01010011 01100001 01000001 01100100 00101000 00100000 01101000 01101110 01001001 00100000 00100000 01111010 01101111 01110010 01101011 01001000 01001001 01100011 01110000 01010011 01000101 01100101 01000011 01101111 01000001 01100101 01100011 01100101 01101110 01000101 01100101 00100000 01010101 01111001 01001001 01101100 01001110 01100101 01101111 01110100 00111011 01110100 00100000 01010100 01100011 00100000 01100101 01000101 01000001 00100000 00100000 01001011 01001001 01010011 01001011 01101001 00100000 00100000 01001000 00100000 01110100 00100000 01110011 01000100 01111000 01110011 01110100 01110100 01101110 00111011 01001101 01101000 01010011 01010101 01101001 00100111 00100000 01001011 01000001 01001111 01010010 01001110 01110100 01111000 01101111 01110100 01010100 01100101 01000001 01000101 00100000 01001111 00100000 01110011 01110000 01000001 01000001 01100101 01001111 01100101 00100000 01100101 01110100 01110011 00100000 01101100 00100000 01001111 01000011 01100111 01000010 01110100 00100000 01000001 01100101 01110100 01100010 01010100 01100101 01001000 01101101 00101001 01100001 01101111 01111100 01101001 01010010 01001001 01101001 01000101 01101100 01110100 00100000 01011001 01100001 01000100 01101110 01101000 01110100 01000010 01010100 01101100 01101000 01000011 01000111 01100101 01010011 01110111 01010100 01000111 01100010 01101110 00100000 01101110 01100011 01001100 01111001 01000110 01110100 01101000 01111001 01001111 00100000 01001110 00100000 01111000 01100100 01010100 01000011 01000100 01100101 01101001 01110010 01101110 01111001 01101000 01110011 01110100 01000001 01010101 00100000 01010100 00101000 00111010 01010011 01001111 01000101 01110011 00100000 01101100 01111001 01010100 01000101 01101010 01001101 01110011 01100101 01010000 01110101 01110000 00100000 01101100 01110011 01110100 01101011 01010010 01101110 01101110 01110000 01111001 01101110 01100100 01010101 01101001 01100101 01001001 01100101 00101001 01110010 01000110 00100000 01100110 01110010 00110110 01010011 01110100 01110100 01010100 01100001 01001000 01100110 01001001 00111011 01001110 01100101 00100000 01001111 01101000 00111010 01110000 01000001 01100011 00100000 01010100 01101001 01001101 01100101 01101110 01000101 00100000 01110011 00100000 01101000 00101001 01100101 01110011 01001100 01110011 01100010 01110011 00100000 01110010 01101111 01001111 01101100 01101100 00100000 01010110 01100011 01101110 01110111 01001100 01010100 01001111 00111011 01101110 01101000 01001011 01010100 01110011 01101110 01100101 01010000 01101101 01010101 01001110 00111011 01010101 01110101 01110011 01001000 01100100 01110101 01110011 01000100 01110100 00100000 01101100 00100000 01000010 00100000 01001000 01101111 00110111 00110010 01000101 01111001 01001101 01001110 01110101 01010010 01101111 01111001 00100000 01111010 01101110 01101101 00100000 01100100 01110111 01000101 01110011 00100000 01001001 01000101 01101001 01000001 01111000 01110100 01110100 01100101 01000011 01110010 01110111 01100101 01100101 00100000 01001101 01100101 01010010 01100101 01101110 00100000 00111011 01101001 01000010 00100000 01001111 01110011 01110100 01101110 01000001 01110100 01001100 00101000 01001110 01110010 01101111 01000101 01110100 01110111 01100101 01111100 00100000 00101000 01110100 00111010 01110011 01100101 00100000 01101000 01111001 01101110 01101001 01000101 01100100 01110010 00111011 01101001 01001011 01110011 01101110 01110100 00100000 01000101 01100101 00111011 01101111 01101111 01100101 01010011 01101111 01000101 01100100 01110101 01100111 00100000 01101001 01110101 00100000 01010010 01100100 00100000 01001000 00100000 01100100 01100100 01000011 01100001 01001100 01010011 01010000 01000011 00100000 01000001 01000100 01101001 01101001 01000001 01011001 01000001 00101001
```

### Conversion from binary to ASCII

Converting each space-separated binary byte into its corresponding ASCII character yields the following.

```
```

### Test 1: DONTBOTHER17

The message above contains a block of encrypted text within the "`DATA(`…`)`" section.

The encryption method DONTBOTHER17 may be interpreted as 'don't bother with the first 17 characters, and then take the next'. Though, when a character is taken and added to the result, it must be removed from the data. In other words, if characters are removed as they are taken, the message is generated by taking the (starting from 1) 18th character, then the 35th, then the 54th, and so on. Doing this repeatedly yields the following text:

```
first test passed; next encryption method

```

(The name of the encryption method DONTBOTHER17 actually describes its decryption method.)

(Without removing characters, the method is equivalent to taking every 18th character, though this is not sufficient for generating the entire message for the reason described below.)

However, in order to obtain the full message, the indexes must wrap. Therefore, a procedure to decrypt the data is as follows:

1. Let `data` be the encrypted text. Let `output` be an empty string. Let `index` be 0.
	* *(For this article, let

	data

	[
	i
	]

	{\displaystyle {\text{data}}[i]}

	 be the `i`th character of `data`, starting at 0.)*
2. While `data` is not empty:
	1. Add 17 to `index` and then take its modulo

	length
	⁡
	(

	data

	)

	{\displaystyle \operatorname {length} ({\text{data}})}

	.
	2. Remove

	data

	[

	index

	]

	{\displaystyle {\text{data}}[{\text{index}}]}

	 and append it to `output`. (The characters after it must shift to fill its place.)
3. Return `output`.

```
// JavaScript

(() => {

 let index = 0;
 let output = "";
 while (data.length > 0) {
 index = (index + 17) % data.length;
 output += data.splice(index, 1); // Remove the character from `data` and add it to `output`
 }

 return output;
})();

```

Doing this yields the following text.

```

```

### Test 2: HUMANSCANTSOLVETHISSOBETTERSTOPHERE

This encryption method's name does not provide a hint as to how to undo it.

The message starts with the phrase "first test passed", so one may guess that the next message may start with "second test passed" or at least the word "second".

In testing various solutions, one may also see that there is an "s" at position 8 in the encrypted data. Since the previous solution required characters to be removed from the data as they were added to the result, they might remove the "s". After doing so, there is an "e" at position 29 = 8 + 21. Repeating this, there is then a "c" at position 42 = 8 + 21 + 13, and so on. The gaps between each letter happen to align with the positions in the alphabet of the letters in the key ("H": 8, "U": 21, "M": 13, …).

Continuing this process until the end of the encrypted data yields the text

```
second test passed; next test: DLIH
```

One can also generalize from the previous solution that the encryption/decryption algorithms simply shuffle the characters and therefore must iterate through every character in the encrypted text.
Once again, by letting the indexes wrap when accessing characters from the key and data, the algorithm can continue until there are no characters left in the data.

	* Let `data` be the encrypted text.
	* Let `key` be the encryption method name.
	* Let `output` be an empty string.
	* Let `index` be 0.
	* Let `nChars` be the number of characters appended to `output`, starting at 0.
2. While `data` is not empty:
	1. Let `char` be

	key

	[

	nChars

	]

	{\displaystyle {\text{key}}[{\text{nChars}}]}

	, with wrapping. (i.e.,

	key

	[
	mod
	⁡
	(

	nChars

	,
	length
	⁡
	(

	key

	)
	)
	]

	{\displaystyle {\text{key}}[\operatorname {mod} ({\text{nChars}},\operatorname {length} ({\text{key}}))]}

	)
	2. Let `alphabetPosition` be `char`'s position in the alphabet, starting at 1. ("A" ⇒ 1, "B" ⇒ 2, …)
	3. Add `alphabetPosition` to `index` and then take its modulo

	length
	⁡
	(

	data

	)

	{\displaystyle \operatorname {length} ({\text{data}})}

	.
	4. Remove

	data

	[

	index

	]

	{\displaystyle {\text{data}}[{\text{index}}]}

	 and append it to `output`. (The characters after it must shift to fill its place.)
3. Return `output`.

Ultimately, the procedure appears fairly similar to the previous solution:

```
// JavaScript

(() => {
 const key = "HUMANSCANTSOLVETHISSOBETTERSTOPHERE";

 let index = 0;
 let output = "";
 while (data.length > 0) {
 const alphaPosition = key[output.length % key.length].charCodeAt() - "A".charCodeAt() + 1; // Position in the alphabet of the corresponding letter of the key
 index = (index + alphaPosition) % data.length;
 output += data.splice(index, 1); // Remove the character from `data` and add it to `output`
 }

 return output;
})();

```

Doing this yields the following text.

```

```

### Test 3: DLIHCREHTONMAITUBREHTOMYMSIEHS

When reversed, the encryption method reads "SHE IS MY MOTHER BUT I AM NOT HER CHILD".

???

### Test 6: ???

From analyzing the ciphertext obtained after passing test 2, just by counting and deleting characters of `third test passed; next test: DATA()` and so on, it can be deduced that there are 6 tests in total (and 6 ciphers correspondingly).