# Malbolge Reborn

Malbolge Reborn is an attempt to make an esolang that's even harder than Malbolge. It is currently in the prosses of being created. Malbolge Reborn runs on an array, where each cell in the array can hold a different number of values, starting with the first one, at two values. At the start of a program, every cell except for the first one is "locked" which means they can't be accessed. There is a data pointer that starts off pointing at the first (and only) cell in the array. To "unlock" a cell, you have to unlock all cells before it in numerical order. To unlock a cell, you use the unlock command which is represented by the character "#". After each "#" command, you have to put a number of no-ops, or "Q"s. The number of no-ops is determined by this formula: cell capacity^2 plus 3 times cell value minus 3. So, to unlock the second cell you would write:

```#Q
```

Since 2^2 + 3 * 0 - 3 = 1. Another thing to note, is that the data pointer will move forward from its original location forward n steps, where n is the amount of "Q"s after the "#", looping back around if necessary, so if you want to unlock cell ten (having ten possible values that is), you would write this:

```#Q#QQQQQQ#QQQQQQ#QQQQQQQQQQQQQQQQQQQQQ#Q#QQQQQQ#Q#QQQQQQ
```

Now, the data pointer is at the cell with size 9. To change the data pointer, you use the " " command. It moves the data pointer backwards one cell, and if followed by the original cell's size amount of "Q"s. So, if you want to access the cell with size ten, you would type this:

```#Q#QQQQQQ#QQQQQQ#QQQQQQQQQQQQQQQQQQQQQ#Q#QQQQQQ#Q#QQQQQQ QQQQQQQQQ QQQQQQQQ QQQQQQQ QQQQQQ QQQQQ QQQQ QQQ QQ Q
```

### Obfuscation

Each character in the code is transformed by applying the following function n times, where n = the 4-indexed character index in the code. The function is as follows:

Origonal ! " # \$ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
New w g J b / v % L e [ c r M d = U C + G m 9 ' n H ? K } ^ 2 Z z 3 P I X 0 u l | ( , R . & x _ f t a ~ ! \ s Y S ` A y o p V > Q 8 1 O i : ] ) W E ; - < T 5 D N 7 { j " 4 @ B k # F \$ 6 h * q

So the code:

```#Q#QQQQQQ#QQQQQQ#QQQQQQQQQQQQQQQQQQQQQ#Q#QQQQQQ#Q#QQQQQQ QQQQQQQQQ QQQQQQQQ QQQQQQQ QQQQQQ QQQQQ QQQQ QQQ QQ Q
```

Would become:

```^n~u@PaOt@9K&%vBKAIR!gElTs"J.=ZoNfW`1+fj`d]>z\$/]YzF|h wkJ2G(e)[p7H+M_8?3m5'/x#bi;^Qwq{6nDu)PaOt4MK&%vmXAIx!gil
```

## External Resources

Obfuscation Program(The wierd symbol at the end isn't part of the obfustcation, it's just to let you know if there is a space at the end) (You have to change the string in the code.) (You can also deobfuscate)