Line data Source code
1 : /* Cam Mannett 2020 2 : * 3 : * See LICENSE file 4 : */ 5 : 6 : #include "malbolge/cpu_instruction.hpp" 7 : 8 : using namespace malbolge; 9 : 10 : namespace 11 : { 12 : constexpr auto pre_cipher = R"(+b(29e*j1VMEKLyC})8&m#~W>qxdRp0wkrUo[D7,XTcA"lI)" 13 : R"(.v%{gJh4G\-=O@5`_3i<?Z';FNQuY]szf$!BS/|t:Pn6^Ha)"; 14 : constexpr auto post_cipher = R"(5z]&gqtyfr$(we4{WP)H-Zn,[%\3dL+Q;>U!pJS72FhOA1C)" 15 : R"(B6v^=I_0/8|jsb9m<.TVac`uY*MK'X~xDl}REokN:#?G"i@)"; 16 : } 17 : 18 7671 : std::optional<char> cipher::pre(std::size_t index) noexcept 19 : { 20 7671 : if (index >= cipher::size) { 21 1 : return {}; 22 : } 23 : 24 7670 : return pre_cipher[index]; 25 : } 26 : 27 3955 : std::optional<char> cipher::post(std::size_t index) noexcept 28 : { 29 3955 : if (index >= cipher::size) { 30 1 : return {}; 31 : } 32 : 33 3954 : return post_cipher[index]; 34 : }