[ create a new paste ] login | about

Link: http://codepad.org/O12asZk4    [ raw code | fork ]

Python, pasted on Apr 29:
from binascii import hexlify

def crypto(string): #SOUL123412341234
 buffer = hex(int(string[4:12]))
 array = [0x57, 0x1F, 0x06, 0x2C, 0x34, 0x0B, 0x58, 0x2F, 0x11, 0x0B, 0x29, 0x5E, 0x05, 0xFF, 0x04, 0x1D]
 esi = 0xD1E7
 var4 = 0
 for byte in xrange(len(string)):
  if byte < 12:
   eax = int(hexlify(string[byte]), 16)
   eax = (eax & 0x7F) & 0xFFFFFFFF
   edx = eax
   eax = (eax << byte) & 0xFFFFFFFF
   edx = (edx * esi) & 0xFFFFFFFF
   esi = (esi ^ edx) & 0xFFFFFFFF
   edx = array[byte]
   esi = (esi + eax) & 0xFFFFFFFF
   eax = esi
   var4 = edx
   if eax > 0: edx = 0x00
   else: edx = 0xFFFFFFFF
   edx = eax % 0x64
   var4 = (var4 + edx) & 0xFFFFFFFF
   eax = (eax / 0x64) & 0xFFFFFFFF
   esi = (esi - var4) & 0xFFFFFFFF
  else: break

 esi = esi & 0x7FFFFFFF
 if buffer < 0x0CE4:
  eax = esi
  if eax > 0: edx = 0x00
  else: edx = 0xFFFFFFFF
  var4 = eax % 0xFF2F
  eax = eax / 0xFF2F
  esi = var4
  esi = esi & 0xFFFF
 #EBP+C and EDI are both pointers to variables, unknown to me atm
 #if EBP+C == 0:
  #[EBP+C] = EDI
 return hex(int(esi))

print crypto("SOUL123412341234")


Create a new paste based on this one


Comments: