Function at 0x401200
Capabilities:
Encode data using xor
Encrypt data using des

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0xc]
mov edx, dword [ebp]
push esi
push edi
mov edi, dword [ebp + 4]
mov esi, eax
mov ecx, edi
shr ecx, 0x10
mov eax, edi
shr eax, 0x18
movzx ebx, cl
mov ecx, dword [eax*8 + 0x414598]
xor ecx, dword [ebx*8 + 0x413d98]
mov eax, dword [eax*8 + 0x41459c]
xor eax, dword [ebx*8 + 0x413d9c]
mov ebx, edi
shr ebx, 8
movzx edi, bl
xor ecx, dword [edi*8 + 0x413598]
xor eax, dword [edi*8 + 0x41359c]
mov edi, edx
shr edi, 0x18
xor ecx, dword [edi*8 + 0x412598]
xor eax, dword [edi*8 + 0x41259c]
mov ebx, edx
shr ebx, 0x10
movzx edi, bl
xor ecx, dword [edi*8 + 0x411d98]
xor eax, dword [edi*8 + 0x411d9c]
mov ebx, edx
shr ebx, 8
movzx edi, bl
xor ecx, dword [edi*8 + 0x411598]
xor eax, dword [edi*8 + 0x41159c]
movzx edi, byte [ebp + 4]
xor ecx, dword [edi*8 + 0x412d98]
xor eax, dword [edi*8 + 0x412d9c]
movzx edx, dl
xor ecx, dword [edx*8 + 0x410d98]
xor eax, dword [edx*8 + 0x410d9c]
mov dword [esp + 0x14], 8
lea esp, [esp]
mov edx, ecx
ror edx, 4
xor edx, dword [esi]
add esi, 4
mov edi, edx
shr edi, 0x18
and edi, 0x3f
mov edi, dword [edi*4 + 0x410598]
mov ebx, edx
shr ebx, 0x10
and ebx, 0x3f
xor edi, dword [ebx*4 + 0x410798]
mov ebx, edx
shr ebx, 8
and ebx, 0x3f
xor edi, dword [ebx*4 + 0x410998]
and edx, 0x3f
xor edi, dword [edx*4 + 0x410b98]
mov edx, dword [esi]
xor eax, edi
xor edx, ecx
mov edi, edx
shr edi, 0x18
and edi, 0x3f
mov edi, dword [edi*4 + 0x410698]
mov ebx, edx
shr ebx, 0x10
and ebx, 0x3f
xor edi, dword [ebx*4 + 0x410898]
mov ebx, edx
shr ebx, 8
and ebx, 0x3f
xor edi, dword [ebx*4 + 0x410a98]
and edx, 0x3f
xor edi, dword [edx*4 + 0x410c98]
add esi, 4
xor eax, edi
mov edx, eax
ror edx, 4
xor edx, dword [esi]
add esi, 4
mov edi, edx
shr edi, 0x18
and edi, 0x3f
mov edi, dword [edi*4 + 0x410598]
mov ebx, edx
shr ebx, 0x10
and ebx, 0x3f
xor edi, dword [ebx*4 + 0x410798]
mov ebx, edx
shr ebx, 8
and ebx, 0x3f
xor edi, dword [ebx*4 + 0x410998]
and edx, 0x3f
xor edi, dword [edx*4 + 0x410b98]
mov edx, dword [esi]
xor ecx, edi
xor edx, eax
mov edi, edx
shr edi, 0x18
and edi, 0x3f
mov edi, dword [edi*4 + 0x410698]
mov ebx, edx
shr ebx, 0x10
and ebx, 0x3f
xor edi, dword [ebx*4 + 0x410898]
mov ebx, edx
shr ebx, 8
and ebx, 0x3f
xor edi, dword [ebx*4 + 0x410a98]
and edx, 0x3f
xor edi, dword [edx*4 + 0x410c98]
add esi, 4
xor ecx, edi
sub dword [esp + 0x14], 1
jne 0x4012c0
mov edx, ecx
shr edx, 0x10
movzx edi, dl
mov esi, ecx
shr esi, 0x18
mov edx, dword [esi*8 + 0x418598]
xor edx, dword [edi*8 + 0x417d98]
mov esi, dword [esi*8 + 0x41859c]
xor esi, dword [edi*8 + 0x417d9c]
mov ebx, ecx
shr ebx, 8
movzx edi, bl
xor esi, dword [edi*8 + 0x41759c]
xor edx, dword [edi*8 + 0x417598]
mov edi, eax
shr edi, 0x18
xor esi, dword [edi*8 + 0x41659c]
xor edx, dword [edi*8 + 0x416598]
mov ebx, eax
shr ebx, 0x10
movzx edi, bl
xor esi, dword [edi*8 + 0x415d9c]
xor edx, dword [edi*8 + 0x415d98]
mov ebx, eax
shr ebx, 8
movzx edi, bl
xor esi, dword [edi*8 + 0x41559c]
xor edx, dword [edi*8 + 0x415598]
movzx ecx, cl
xor esi, dword [ecx*8 + 0x416d9c]
xor edx, dword [ecx*8 + 0x416d98]
movzx eax, al
xor esi, dword [eax*8 + 0x414d9c]
xor edx, dword [eax*8 + 0x414d98]
pop edi
mov dword [ebp + 4], esi
pop esi
mov dword [ebp], edx
pop ebp
pop ebx
ret