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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xc
mov ebx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 4], eax
mov esi, ebx
movzx edi, bl
shr esi, 0x18
add esi, 0x300
mov eax, dword [esi*8 + 0x4235c0]
mov esi, dword [esi*8 + 0x4235c4]
xor eax, dword [edi*8 + 0x4235c0]
xor esi, dword [edi*8 + 0x4235c4]
movzx edi, cl
add edi, 0x400
xor eax, dword [edi*8 + 0x4235c0]
xor esi, dword [edi*8 + 0x4235c4]
mov edi, ecx
shr edi, 0x18
add edi, 0x700
xor eax, dword [edi*8 + 0x4235c0]
xor esi, dword [edi*8 + 0x4235c4]
movzx edi, bh
shr ebx, 0x10
add edi, 0x100
movzx ebx, bl
xor eax, dword [edi*8 + 0x4235c0]
xor esi, dword [edi*8 + 0x4235c4]
add ebx, 0x200
lea edi, [edx + 0x80]
xor eax, dword [ebx*8 + 0x4235c0]
xor esi, dword [ebx*8 + 0x4235c4]
movzx ebx, ch
shr ecx, 0x10
add ebx, 0x500
mov dword [esp], edi
movzx ecx, cl
xor eax, dword [ebx*8 + 0x4235c0]
xor esi, dword [ebx*8 + 0x4235c4]
add ecx, 0x600
xor esi, dword [ecx*8 + 0x4235c4]
xor eax, dword [ecx*8 + 0x4235c0]
mov edi, eax
mov ecx, dword [edx + 4]
add edx, 0x10
ror edi, 4
xor edi, dword [edx - 0x10]
xor ecx, eax
mov ebx, ecx
mov ebp, edi
and ebx, 0x3f
and ebp, 0x3f
mov ebx, dword [ebx*4 + 0x4275c0]
xor ebx, dword [ebp*4 + 0x4276c0]
mov ebp, edi
shr ebp, 8
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x4278c0]
mov ebp, edi
shr edi, 0x18
shr ebp, 0x10
and edi, 0x3f
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x427ac0]
xor ebx, dword [edi*4 + 0x427cc0]
mov edi, ecx
shr edi, 8
and edi, 0x3f
xor ebx, dword [edi*4 + 0x4277c0]
mov edi, ecx
shr ecx, 0x18
shr edi, 0x10
and ecx, 0x3f
and edi, 0x3f
xor ebx, dword [edi*4 + 0x4279c0]
xor ebx, dword [ecx*4 + 0x427bc0]
xor esi, ebx
mov ebx, esi
ror ebx, 4
xor ebx, dword [edx - 8]
mov edi, dword [edx - 4]
xor edi, esi
mov ebp, ebx
mov ecx, edi
and ebp, 0x3f
and ecx, 0x3f
mov ecx, dword [ecx*4 + 0x4275c0]
xor ecx, dword [ebp*4 + 0x4276c0]
xor eax, ecx
mov ecx, edi
shr ecx, 8
and ecx, 0x3f
xor eax, dword [ecx*4 + 0x4277c0]
mov ecx, edi
shr edi, 0x18
shr ecx, 0x10
and edi, 0x3f
and ecx, 0x3f
xor eax, dword [ecx*4 + 0x4279c0]
mov ecx, ebx
shr ecx, 8
xor eax, dword [edi*4 + 0x427bc0]
and ecx, 0x3f
xor eax, dword [ecx*4 + 0x4278c0]
mov ecx, ebx
shr ebx, 0x18
shr ecx, 0x10
and ebx, 0x3f
and ecx, 0x3f
xor eax, dword [ecx*4 + 0x427ac0]
xor eax, dword [ebx*4 + 0x427cc0]
cmp edx, dword [esp]
jne 0x412b35
mov edx, esi
mov ebx, esi
shr edx, 0x18
movzx ebx, bl
add edx, 0x300
mov ecx, dword [edx*8 + 0x41f5c0]
mov edx, dword [edx*8 + 0x41f5c4]
xor ecx, dword [ebx*8 + 0x41f5c0]
xor edx, dword [ebx*8 + 0x41f5c4]
movzx ebx, al
add ebx, 0x400
xor ecx, dword [ebx*8 + 0x41f5c0]
xor edx, dword [ebx*8 + 0x41f5c4]
mov ebx, eax
shr ebx, 0x18
add ebx, 0x700
xor ecx, dword [ebx*8 + 0x41f5c0]
xor edx, dword [ebx*8 + 0x41f5c4]
mov ebx, esi
movzx ebx, bh
shr esi, 0x10
add ebx, 0x100
xor ecx, dword [ebx*8 + 0x41f5c0]
xor edx, dword [ebx*8 + 0x41f5c4]
mov ebx, esi
movzx esi, bl
movzx ebx, ah
shr eax, 0x10
add esi, 0x200
add ebx, 0x500
movzx eax, al
xor ecx, dword [esi*8 + 0x41f5c0]
xor edx, dword [esi*8 + 0x41f5c4]
add eax, 0x600
xor ecx, dword [ebx*8 + 0x41f5c0]
xor edx, dword [ebx*8 + 0x41f5c4]
xor ecx, dword [eax*8 + 0x41f5c0]
xor edx, dword [eax*8 + 0x41f5c4]
mov eax, dword [esp + 4]
mov dword [eax], ecx
mov dword [eax + 4], edx
add esp, 0xc
pop ebx
pop esi
pop edi
pop ebp
ret