Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public override void Decrypt(byte[] inData, byte[] outData, int bufferSize)
- {
- if (bufferSize >= 16)
- {
- int v41 = 0;
- int v51 = 0;
- int blockCount = bufferSize >> 4;
- int inDataOffset = 8;
- int outDataOffset = 12;
- for (int block = 0; block < blockCount; block++)
- {
- int v8 = key[84];
- int v12 = (v8 ^ ReadDword(inData, inDataOffset / 4 - 2)) - key[82];
- int v10 = v8 ^ ReadDword(inData, inDataOffset / 4 - 1);
- int v9 = (v8 ^ ReadDword(inData, inDataOffset / 4 + 0)) - key[83];
- int v11 = v8 ^ ReadDword(inData, inDataOffset / 4 + 1);
- int arrIndex = 81;
- for (int j = 0; j < 8; j++)
- {
- int v14 = v11 - key[arrIndex - 1];
- int v16 = v10 - key[arrIndex];
- int v17 = (int) __ROL4__((uint) (v9 * (2 * v9 + 1)), 5);
- int v18 = (int) __ROL4__((uint) (v12 * (2 * v12 + 1)), 5);
- int v19 = v18 ^ (int) __ROR4__((uint) v14, v17);
- int v20 = v9 - key[arrIndex - 3];
- int v21 = v17 ^ (int) __ROR4__((uint) v16, v18);
- int v22 = v12 - key[arrIndex - 2];
- int v23 = (int) __ROL4__((uint) (v21 * (2 * v21 + 1)), 5);
- int v24 = (int) __ROL4__((uint) (v19 * (2 * v19 + 1)), 5);
- int v25 = v24 ^ (int) __ROR4__((uint) v20, v23);
- int v26 = v21 - key[arrIndex - 5];
- int v27 = v23 ^ (int) __ROR4__((uint) v22, v24);
- int v28 = v19 - key[arrIndex - 4];
- int v29 = (int) __ROL4__((uint) (v27 * (2 * v27 + 1)), 5);
- int v30 = (int) __ROL4__((uint) (v25 * (2 * v25 + 1)), 5);
- int v31 = v30 ^ (int) __ROR4__((uint) v26, v29);
- int v32 = v27 - key[arrIndex - 7];
- int v33 = v29 ^ (int) __ROR4__((uint) v28, v30);
- int v34 = (int) __ROL4__((uint) (v33 * (2 * v33 + 1)), 5);
- int v35 = (int) __ROL4__((uint) (v31 * (2 * v31 + 1)), 5);
- v51 = v35 ^ (int) __ROR4__((uint) v32, v34);
- v11 = v34 ^ (int) __ROR4__((uint) (v25 - key[arrIndex - 6]), v35);
- int v37 = v33 - key[arrIndex - 9];
- int v38 = (int) __ROL4__((uint) (v11 * (2 * v11 + 1)), 5);
- int v39 = (int) __ROL4__((uint) (v51 * (2 * v51 + 1)), 5);
- int v40 = (int) __ROR4__((uint) (v31 - key[arrIndex - 8]), v39);
- arrIndex -= 10;
- v9 = v38 ^ v40;
- v41 = v39 ^ (int) __ROR4__((uint) v37, v38);
- v12 = v41;
- v10 = v51;
- }
- WriteDword(outData, outDataOffset / 4 + -3, v41);
- WriteDword(outData, outDataOffset / 4 + -2, v51 - key[0]);
- WriteDword(outData, inDataOffset / 4, v9);
- WriteDword(outData, outDataOffset / 4 + 0, v11 - key[1]);
- inDataOffset += 16;
- outDataOffset += 16;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement