Skip to content

Instantly share code, notes, and snippets.

@zwyz
Created January 7, 2023 13:29
Show Gist options
  • Save zwyz/adda7192bb0c518b8177ac3ffc9191f3 to your computer and use it in GitHub Desktop.
Save zwyz/adda7192bb0c518b8177ac3ffc9191f3 to your computer and use it in GitHub Desktop.
Memory = bytearray()
packet = int(input())
ref_1 = packet
ref_2 = Memory
ref_3 = store(ref_2, 0xa0000017, 0x0) # Byte reference - MOV operation
ref_4 = store(ref_3, 0xa0000016, 0x0) # Byte reference - MOV operation
ref_5 = store(ref_4, 0xa0000015, 0x0) # Byte reference - MOV operation
ref_6 = store(ref_5, 0xa0000014, 0x0) # Byte reference - MOV operation
ref_7 = store(ref_6, 0xa0000013, 0x0) # Byte reference - MOV operation
ref_8 = store(ref_7, 0xa0000012, 0x0) # Byte reference - MOV operation
ref_9 = store(ref_8, 0xa0000011, 0x0) # Byte reference - MOV operation
ref_10 = store(ref_9, 0xa0000010, 0x0) # Byte reference - MOV operation
ref_13 = store(ref_10, 0xa000000b, 0x0) # Byte reference - MOV operation
ref_14 = store(ref_13, 0xa000000a, 0x0) # Byte reference - MOV operation
ref_15 = store(ref_14, 0xa0000009, 0x0) # Byte reference - MOV operation
ref_16 = store(ref_15, 0xa0000008, 0x0) # Byte reference - MOV operation
ref_20 = store(ref_16, 0x9fffffef, 0x0) # Byte reference - PUSH operation
ref_21 = store(ref_20, 0x9fffffee, 0x0) # Byte reference - PUSH operation
ref_22 = store(ref_21, 0x9fffffed, 0x0) # Byte reference - PUSH operation
ref_23 = store(ref_22, 0x9fffffec, 0x0) # Byte reference - PUSH operation
ref_24 = store(ref_23, 0x9fffffeb, 0x9f) # Byte reference - PUSH operation
ref_25 = store(ref_24, 0x9fffffea, 0xff) # Byte reference - PUSH operation
ref_26 = store(ref_25, 0x9fffffe9, 0xff) # Byte reference - PUSH operation
ref_27 = store(ref_26, 0x9fffffe8, 0xf0) # Byte reference - PUSH operation
ref_31 = store(ref_27, 0x9fffffe7, 0x0) # Byte reference - PUSH operation
ref_32 = store(ref_31, 0x9fffffe6, 0x0) # Byte reference - PUSH operation
ref_33 = store(ref_32, 0x9fffffe5, 0x0) # Byte reference - PUSH operation
ref_34 = store(ref_33, 0x9fffffe4, 0x0) # Byte reference - PUSH operation
ref_35 = store(ref_34, 0x9fffffe3, 0x0) # Byte reference - PUSH operation
ref_36 = store(ref_35, 0x9fffffe2, 0x0) # Byte reference - PUSH operation
ref_37 = store(ref_36, 0x9fffffe1, 0x0) # Byte reference - PUSH operation
ref_38 = store(ref_37, 0x9fffffe0, 0x0) # Byte reference - PUSH operation
ref_42 = store(ref_38, 0x9fffffdf, 0x0) # Byte reference - PUSH operation
ref_43 = store(ref_42, 0x9fffffde, 0x0) # Byte reference - PUSH operation
ref_44 = store(ref_43, 0x9fffffdd, 0x0) # Byte reference - PUSH operation
ref_45 = store(ref_44, 0x9fffffdc, 0x0) # Byte reference - PUSH operation
ref_46 = store(ref_45, 0x9fffffdb, 0x0) # Byte reference - PUSH operation
ref_47 = store(ref_46, 0x9fffffda, 0x0) # Byte reference - PUSH operation
ref_48 = store(ref_47, 0x9fffffd9, 0x0) # Byte reference - PUSH operation
ref_49 = store(ref_48, 0x9fffffd8, 0x0) # Byte reference - PUSH operation
ref_53 = store(ref_49, 0x9fffffd7, 0x0) # Byte reference - PUSH operation
ref_54 = store(ref_53, 0x9fffffd6, 0x0) # Byte reference - PUSH operation
ref_55 = store(ref_54, 0x9fffffd5, 0x0) # Byte reference - PUSH operation
ref_56 = store(ref_55, 0x9fffffd4, 0x0) # Byte reference - PUSH operation
ref_57 = store(ref_56, 0x9fffffd3, 0x0) # Byte reference - PUSH operation
ref_58 = store(ref_57, 0x9fffffd2, 0x0) # Byte reference - PUSH operation
ref_59 = store(ref_58, 0x9fffffd1, 0x0) # Byte reference - PUSH operation
ref_60 = store(ref_59, 0x9fffffd0, 0x0) # Byte reference - PUSH operation
ref_64 = store(ref_60, 0x9fffffcf, 0x0) # Byte reference - PUSH operation
ref_65 = store(ref_64, 0x9fffffce, 0x0) # Byte reference - PUSH operation
ref_66 = store(ref_65, 0x9fffffcd, 0x0) # Byte reference - PUSH operation
ref_67 = store(ref_66, 0x9fffffcc, 0x0) # Byte reference - PUSH operation
ref_68 = store(ref_67, 0x9fffffcb, 0x0) # Byte reference - PUSH operation
ref_69 = store(ref_68, 0x9fffffca, 0x0) # Byte reference - PUSH operation
ref_70 = store(ref_69, 0x9fffffc9, 0x0) # Byte reference - PUSH operation
ref_71 = store(ref_70, 0x9fffffc8, 0x0) # Byte reference - PUSH operation
ref_75 = store(ref_71, 0x9fffffc7, 0x0) # Byte reference - PUSH operation
ref_76 = store(ref_75, 0x9fffffc6, 0x0) # Byte reference - PUSH operation
ref_77 = store(ref_76, 0x9fffffc5, 0x0) # Byte reference - PUSH operation
ref_78 = store(ref_77, 0x9fffffc4, 0x0) # Byte reference - PUSH operation
ref_79 = store(ref_78, 0x9fffffc3, 0x0) # Byte reference - PUSH operation
ref_80 = store(ref_79, 0x9fffffc2, 0x0) # Byte reference - PUSH operation
ref_81 = store(ref_80, 0x9fffffc1, 0x0) # Byte reference - PUSH operation
ref_82 = store(ref_81, 0x9fffffc0, 0x0) # Byte reference - PUSH operation
ref_86 = store(ref_82, 0x9fffffbf, 0x0) # Byte reference - PUSH operation
ref_87 = store(ref_86, 0x9fffffbe, 0x0) # Byte reference - PUSH operation
ref_88 = store(ref_87, 0x9fffffbd, 0x0) # Byte reference - PUSH operation
ref_89 = store(ref_88, 0x9fffffbc, 0x0) # Byte reference - PUSH operation
ref_90 = store(ref_89, 0x9fffffbb, 0x0) # Byte reference - PUSH operation
ref_91 = store(ref_90, 0x9fffffba, 0x0) # Byte reference - PUSH operation
ref_92 = store(ref_91, 0x9fffffb9, 0x0) # Byte reference - PUSH operation
ref_93 = store(ref_92, 0x9fffffb8, 0x0) # Byte reference - PUSH operation
ref_113 = store(ref_93, 0x9ffffed7, 0x0) # Byte reference - Saved Program Counter
ref_114 = store(ref_113, 0x9ffffed6, 0x0) # Byte reference - Saved Program Counter
ref_115 = store(ref_114, 0x9ffffed5, 0x0) # Byte reference - Saved Program Counter
ref_116 = store(ref_115, 0x9ffffed4, 0x1) # Byte reference - Saved Program Counter
ref_117 = store(ref_116, 0x9ffffed3, 0x40) # Byte reference - Saved Program Counter
ref_118 = store(ref_117, 0x9ffffed2, 0xc) # Byte reference - Saved Program Counter
ref_119 = store(ref_118, 0x9ffffed1, 0x17) # Byte reference - Saved Program Counter
ref_120 = store(ref_119, 0x9ffffed0, 0xf) # Byte reference - Saved Program Counter
ref_123 = store(ref_120, 0x9ffffee7, ((ref_1 >> 56) & 0xff)) # Byte reference - MOV operation
ref_124 = store(ref_123, 0x9ffffee6, ((ref_1 >> 48) & 0xff)) # Byte reference - MOV operation
ref_125 = store(ref_124, 0x9ffffee5, ((ref_1 >> 40) & 0xff)) # Byte reference - MOV operation
ref_126 = store(ref_125, 0x9ffffee4, ((ref_1 >> 32) & 0xff)) # Byte reference - MOV operation
ref_127 = store(ref_126, 0x9ffffee3, ((ref_1 >> 24) & 0xff)) # Byte reference - MOV operation
ref_128 = store(ref_127, 0x9ffffee2, ((ref_1 >> 16) & 0xff)) # Byte reference - MOV operation
ref_129 = store(ref_128, 0x9ffffee1, ((ref_1 >> 8) & 0xff)) # Byte reference - MOV operation
ref_130 = store(ref_129, 0x9ffffee0, (ref_1 & 0xff)) # Byte reference - MOV operation
ref_133 = store(ref_130, 0x9ffffedf, 0x0) # Byte reference - MOV operation
ref_134 = store(ref_133, 0x9ffffede, 0x0) # Byte reference - MOV operation
ref_135 = store(ref_134, 0x9ffffedd, 0x0) # Byte reference - MOV operation
ref_136 = store(ref_135, 0x9ffffedc, 0x0) # Byte reference - MOV operation
ref_137 = store(ref_136, 0x9ffffedb, 0x9f) # Byte reference - MOV operation
ref_138 = store(ref_137, 0x9ffffeda, 0xff) # Byte reference - MOV operation
ref_139 = store(ref_138, 0x9ffffed9, 0xff) # Byte reference - MOV operation
ref_140 = store(ref_139, 0x9ffffed8, 0x98) # Byte reference - MOV operation
ref_147 = store(ref_140, 0x9fffff9f, select(ref_140, 0x9ffffee7)) # Byte reference - MOV operation
ref_148 = store(ref_147, 0x9fffff9e, select(ref_140, 0x9ffffee6)) # Byte reference - MOV operation
ref_149 = store(ref_148, 0x9fffff9d, select(ref_140, 0x9ffffee5)) # Byte reference - MOV operation
ref_150 = store(ref_149, 0x9fffff9c, select(ref_140, 0x9ffffee4)) # Byte reference - MOV operation
ref_151 = store(ref_150, 0x9fffff9b, select(ref_140, 0x9ffffee3)) # Byte reference - MOV operation
ref_152 = store(ref_151, 0x9fffff9a, select(ref_140, 0x9ffffee2)) # Byte reference - MOV operation
ref_153 = store(ref_152, 0x9fffff99, select(ref_140, 0x9ffffee1)) # Byte reference - MOV operation
ref_154 = store(ref_153, 0x9fffff98, select(ref_140, 0x9ffffee0)) # Byte reference - MOV operation
ref_159 = store(ref_154, 0x9fffffa7, 0x0) # Byte reference - MOV operation
ref_160 = store(ref_159, 0x9fffffa6, 0x0) # Byte reference - MOV operation
ref_161 = store(ref_160, 0x9fffffa5, 0x0) # Byte reference - MOV operation
ref_162 = store(ref_161, 0x9fffffa4, 0x0) # Byte reference - MOV operation
ref_163 = store(ref_162, 0x9fffffa3, 0x0) # Byte reference - MOV operation
ref_164 = store(ref_163, 0x9fffffa2, 0x0) # Byte reference - MOV operation
ref_165 = store(ref_164, 0x9fffffa1, 0x0) # Byte reference - MOV operation
ref_166 = store(ref_165, 0x9fffffa0, 0x0) # Byte reference - MOV operation
ref_176 = store(ref_166, 0x9ffffed7, 0x0) # Byte reference - Saved Program Counter
ref_177 = store(ref_176, 0x9ffffed6, 0x0) # Byte reference - Saved Program Counter
ref_178 = store(ref_177, 0x9ffffed5, 0x0) # Byte reference - Saved Program Counter
ref_179 = store(ref_178, 0x9ffffed4, 0x1) # Byte reference - Saved Program Counter
ref_180 = store(ref_179, 0x9ffffed3, 0x40) # Byte reference - Saved Program Counter
ref_181 = store(ref_180, 0x9ffffed2, 0xc) # Byte reference - Saved Program Counter
ref_182 = store(ref_181, 0x9ffffed1, 0x17) # Byte reference - Saved Program Counter
ref_183 = store(ref_182, 0x9ffffed0, 0x18) # Byte reference - Saved Program Counter
ref_186 = store(ref_183, 0x9ffffedf, 0x0) # Byte reference - MOV operation
ref_187 = store(ref_186, 0x9ffffede, 0x0) # Byte reference - MOV operation
ref_188 = store(ref_187, 0x9ffffedd, 0x0) # Byte reference - MOV operation
ref_189 = store(ref_188, 0x9ffffedc, 0x0) # Byte reference - MOV operation
ref_190 = store(ref_189, 0x9ffffedb, 0x9f) # Byte reference - MOV operation
ref_191 = store(ref_190, 0x9ffffeda, 0xff) # Byte reference - MOV operation
ref_192 = store(ref_191, 0x9ffffed9, 0xff) # Byte reference - MOV operation
ref_193 = store(ref_192, 0x9ffffed8, 0x98) # Byte reference - MOV operation
ref_208 = store(ref_193, 0x9ffffebf, select(ref_193, 0x9fffff9f)) # Byte reference - MOV operation
ref_209 = store(ref_208, 0x9ffffebe, select(ref_193, 0x9fffff9e)) # Byte reference - MOV operation
ref_210 = store(ref_209, 0x9ffffebd, select(ref_193, 0x9fffff9d)) # Byte reference - MOV operation
ref_211 = store(ref_210, 0x9ffffebc, select(ref_193, 0x9fffff9c)) # Byte reference - MOV operation
ref_212 = store(ref_211, 0x9ffffebb, select(ref_193, 0x9fffff9b)) # Byte reference - MOV operation
ref_213 = store(ref_212, 0x9ffffeba, select(ref_193, 0x9fffff9a)) # Byte reference - MOV operation
ref_214 = store(ref_213, 0x9ffffeb9, select(ref_193, 0x9fffff99)) # Byte reference - MOV operation
ref_215 = store(ref_214, 0x9ffffeb8, select(ref_193, 0x9fffff98)) # Byte reference - MOV operation
ref_239 = store(ref_215, 0x9fffff1f, 0x0) # Byte reference - MOV operation
ref_240 = store(ref_239, 0x9fffff1e, 0x0) # Byte reference - MOV operation
ref_241 = store(ref_240, 0x9fffff1d, 0x0) # Byte reference - MOV operation
ref_242 = store(ref_241, 0x9fffff1c, 0x0) # Byte reference - MOV operation
ref_245 = store(ref_242, 0x1f, ((((((((((((select(ref_242, 0x1f)) << 8 | select(ref_242, 0x1e)) << 8 | select(ref_242, 0x1d)) << 8 | select(ref_242, 0x1c)) << 8 | select(ref_242, 0x1b)) << 8 | select(ref_242, 0x1a)) << 8 | select(ref_242, 0x19)) << 8 | select(ref_242, 0x18)) + 0x4) & 0xffffffffffffffff) >> 56) & 0xff)) # Byte reference - ADD operation
ref_246 = store(ref_245, 0x1e, ((((((((((((select(ref_242, 0x1f)) << 8 | select(ref_242, 0x1e)) << 8 | select(ref_242, 0x1d)) << 8 | select(ref_242, 0x1c)) << 8 | select(ref_242, 0x1b)) << 8 | select(ref_242, 0x1a)) << 8 | select(ref_242, 0x19)) << 8 | select(ref_242, 0x18)) + 0x4) & 0xffffffffffffffff) >> 48) & 0xff)) # Byte reference - ADD operation
ref_247 = store(ref_246, 0x1d, ((((((((((((select(ref_242, 0x1f)) << 8 | select(ref_242, 0x1e)) << 8 | select(ref_242, 0x1d)) << 8 | select(ref_242, 0x1c)) << 8 | select(ref_242, 0x1b)) << 8 | select(ref_242, 0x1a)) << 8 | select(ref_242, 0x19)) << 8 | select(ref_242, 0x18)) + 0x4) & 0xffffffffffffffff) >> 40) & 0xff)) # Byte reference - ADD operation
ref_248 = store(ref_247, 0x1c, ((((((((((((select(ref_242, 0x1f)) << 8 | select(ref_242, 0x1e)) << 8 | select(ref_242, 0x1d)) << 8 | select(ref_242, 0x1c)) << 8 | select(ref_242, 0x1b)) << 8 | select(ref_242, 0x1a)) << 8 | select(ref_242, 0x19)) << 8 | select(ref_242, 0x18)) + 0x4) & 0xffffffffffffffff) >> 32) & 0xff)) # Byte reference - ADD operation
ref_249 = store(ref_248, 0x1b, ((((((((((((select(ref_242, 0x1f)) << 8 | select(ref_242, 0x1e)) << 8 | select(ref_242, 0x1d)) << 8 | select(ref_242, 0x1c)) << 8 | select(ref_242, 0x1b)) << 8 | select(ref_242, 0x1a)) << 8 | select(ref_242, 0x19)) << 8 | select(ref_242, 0x18)) + 0x4) & 0xffffffffffffffff) >> 24) & 0xff)) # Byte reference - ADD operation
ref_250 = store(ref_249, 0x1a, ((((((((((((select(ref_242, 0x1f)) << 8 | select(ref_242, 0x1e)) << 8 | select(ref_242, 0x1d)) << 8 | select(ref_242, 0x1c)) << 8 | select(ref_242, 0x1b)) << 8 | select(ref_242, 0x1a)) << 8 | select(ref_242, 0x19)) << 8 | select(ref_242, 0x18)) + 0x4) & 0xffffffffffffffff) >> 16) & 0xff)) # Byte reference - ADD operation
ref_251 = store(ref_250, 0x19, ((((((((((((select(ref_242, 0x1f)) << 8 | select(ref_242, 0x1e)) << 8 | select(ref_242, 0x1d)) << 8 | select(ref_242, 0x1c)) << 8 | select(ref_242, 0x1b)) << 8 | select(ref_242, 0x1a)) << 8 | select(ref_242, 0x19)) << 8 | select(ref_242, 0x18)) + 0x4) & 0xffffffffffffffff) >> 8) & 0xff)) # Byte reference - ADD operation
ref_252 = store(ref_251, 0x18, (((((((((((select(ref_242, 0x1f)) << 8 | select(ref_242, 0x1e)) << 8 | select(ref_242, 0x1d)) << 8 | select(ref_242, 0x1c)) << 8 | select(ref_242, 0x1b)) << 8 | select(ref_242, 0x1a)) << 8 | select(ref_242, 0x19)) << 8 | select(ref_242, 0x18)) + 0x4) & 0xffffffffffffffff) & 0xff)) # Byte reference - ADD operation
ref_261 = ((((((((select(ref_252, 0x1f)) << 8 | select(ref_252, 0x1e)) << 8 | select(ref_252, 0x1d)) << 8 | select(ref_252, 0x1c)) << 8 | select(ref_252, 0x1b)) << 8 | select(ref_252, 0x1a)) << 8 | select(ref_252, 0x19)) << 8 | select(ref_252, 0x18)) # MOV operation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment