def load_code(self):
a = self.load_int()<EOL>b = self.load_int()<EOL>key = get_keys(a, b)<EOL>padsize = (b + <NUM_LIT:15>) & ~<NUM_LIT><EOL>intsize = padsize/<NUM_LIT:4><EOL>data = self.bufstr[self.bufpos:self.bufpos+padsize]<EOL>data = list(struct.unpack('<STR_LIT>' % intsize, data))<EOL>tea_decipher(data, key)<EOL>self.bufpos += padsize<EOL>obj = xmarshal._FastUnmarshaller(struct.pack('<STR_LIT>' % intsize, *data))<EOL>code = obj.load_code()<EOL>co_code = patch(code.co_code)<EOL>if PYTHON3:<EOL><INDENT>return Code2Compat(code.co_argcount, code.co_nlocals, code.co_stacksize,<EOL>code.co_flags,<EOL>co_code, code.co_consts, code.co_names, code.co_varnames,<EOL>code.co_filename, code.co_name, code.co_firstlineno,<EOL>code.co_lnotab, code.co_freevars, code.co_cellvars)<EOL><DEDENT>else:<EOL><INDENT>return types.CodeType(code.co_argcount, code.co_nlocals, code.co_stacksize, code.co_flags,<EOL>co_code, code.co_consts, code.co_names, code.co_varnames,<EOL>code.co_filename, code.co_name, code.co_firstlineno,<EOL>code.co_lnotab, code.co_freevars, code.co_cellvars)<EOL><DEDENT>
Returns a Python code object like xdis.unmarshal.load_code(),
but in we decrypt the data in self.bufstr.

That is:
  * calculate the TEA key,
  * decrypt self.bufstr
  * create and return a Python code-object