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

Disassembly:
sub esp, 0x70
mov eax, dword [0x469644]
xor eax, esp
mov dword [esp + 0x6c], eax
push ebx
mov ebx, dword [0x46db14]
push ebp
push esi
mov esi, dword [0x46db10]
push edi
mov ecx, 0x46e018
xor eax, eax
sub ecx, esi
mov ebp, esi
mov edi, ebx
sub ebp, 0x46e018
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
sub edi, 0x46e018
jmp 0x40c5eb
mov esi, dword [0x46db10]
mov eax, dword [esp + 0x10]
lea ecx, [eax*8]
sub ecx, eax
lea eax, [ecx*8 + 0x46dc60]
push 0x38
push eax
push 0x46dfe0
call fcn.0043dfc0
add esp, 0xc
xor eax, eax
lea ecx, [ecx]
movzx edx, byte [eax + 0x46aab0]
movzx ecx, byte [edx + 0x46dfdf]
movzx edx, byte [eax + 0x46aab1]
mov byte [esp + eax + 0x18], cl
movzx ecx, byte [edx + 0x46dfdf]
movzx edx, byte [eax + 0x46aab2]
mov byte [esp + eax + 0x19], cl
movzx ecx, byte [edx + 0x46dfdf]
movzx edx, byte [eax + 0x46aab3]
mov byte [esp + eax + 0x1a], cl
movzx ecx, byte [edx + 0x46dfdf]
movzx edx, byte [eax + 0x46aab4]
mov byte [esp + eax + 0x1b], cl
movzx ecx, byte [edx + 0x46dfdf]
movzx edx, byte [eax + 0x46aab5]
mov byte [esp + eax + 0x1c], cl
movzx ecx, byte [edx + 0x46dfdf]
mov byte [esp + eax + 0x1d], cl
add eax, 6
cmp eax, 0x30
jl 0x40c610
push 0x30
lea edx, [esp + 0x1c]
push edx
push 0x46dfe0
call fcn.0043dfc0
add esp, 0xc
xor eax, eax
lea ebx, [ebx]
mov cl, byte [eax + ebp + 0x46e018]
mov byte [eax + 0x46e018], cl
inc eax
cmp eax, 0x20
jl 0x40c6a0
xor eax, eax
jmp 0x40c6c0
movzx edx, byte [eax + 0x46aae0]
movzx ecx, byte [edx + 0x46e017]
movzx edx, byte [eax + 0x46aae1]
mov byte [esp + eax + 0x18], cl
movzx ecx, byte [edx + 0x46e017]
movzx edx, byte [eax + 0x46aae2]
mov byte [esp + eax + 0x19], cl
movzx ecx, byte [edx + 0x46e017]
movzx edx, byte [eax + 0x46aae3]
mov byte [esp + eax + 0x1a], cl
movzx ecx, byte [edx + 0x46e017]
movzx edx, byte [eax + 0x46aae4]
mov byte [esp + eax + 0x1b], cl
movzx ecx, byte [edx + 0x46e017]
movzx edx, byte [eax + 0x46aae5]
mov byte [esp + eax + 0x1c], cl
movzx ecx, byte [edx + 0x46e017]
mov byte [esp + eax + 0x1d], cl
add eax, 6
cmp eax, 0x30
jl 0x40c6c0
push 0x30
lea edx, [esp + 0x1c]
push edx
push 0x46e018
call fcn.0043dfc0
add esp, 0xc
xor eax, eax
lea ebx, [ebx]
movzx ecx, byte [eax + 0x46dfe0]
movzx edx, byte [eax + 0x46dfe1]
xor byte [eax + 0x46e018], cl
xor byte [eax + 0x46e019], dl
movzx ecx, byte [eax + 0x46dfe2]
movzx edx, byte [eax + 0x46dfe3]
xor byte [eax + 0x46e01a], cl
xor byte [eax + 0x46e01b], dl
movzx ecx, byte [eax + 0x46dfe4]
movzx edx, byte [eax + 0x46dfe5]
xor byte [eax + 0x46e01c], cl
xor byte [eax + 0x46e01d], dl
add eax, 6
cmp eax, 0x30
jl 0x40c750
call fcn.0040ca00
xor eax, eax
lea ecx, [ecx]
movzx ecx, byte [eax + 0x46ad20]
movzx edx, byte [ecx + 0x46e017]
movzx ecx, byte [eax + 0x46ad21]
mov byte [esp + eax + 0x18], dl
movzx edx, byte [ecx + 0x46e017]
movzx ecx, byte [eax + 0x46ad22]
mov byte [esp + eax + 0x19], dl
movzx edx, byte [ecx + 0x46e017]
movzx ecx, byte [eax + 0x46ad23]
mov byte [esp + eax + 0x1a], dl
movzx edx, byte [ecx + 0x46e017]
mov byte [esp + eax + 0x1b], dl
add eax, 4
cmp eax, 0x20
jl 0x40c7b0
push 0x20
lea eax, [esp + 0x1c]
push eax
push 0x46e018
call fcn.0043dfc0
add esp, 0xc
xor eax, eax
jmp 0x40c820
movzx ecx, byte [edi + eax + 0x46e018]
xor byte [eax + 0x46e018], cl
movzx edx, byte [ebx + eax + 1]
xor byte [eax + 0x46e019], dl
movzx ecx, byte [ebx + eax + 2]
xor byte [eax + 0x46e01a], cl
movzx edx, byte [ebx + eax + 3]
xor byte [eax + 0x46e01b], dl
add eax, 4
cmp eax, 0x20
jl 0x40c820
mov eax, esi
mov esi, 0x20
mov edi, edi
mov ecx, dword [esp + 0x14]
mov dl, byte [eax]
add ecx, eax
mov byte [ecx + edi], dl
mov cl, byte [ecx]
mov byte [eax], cl
inc eax
sub esi, 1
jne 0x40c860
mov esi, dword [esp + 0x10]
cmp esi, 0xf
jne 0x40c8b0
xor eax, eax
movzx edx, byte [eax + ebp + 0x46e018]
mov byte [eax + 0x46e018], dl
mov cl, byte [eax + edi + 0x46e018]
mov byte [eax + ebp + 0x46e018], cl
movzx edx, byte [eax + 0x46e018]
mov byte [eax + edi + 0x46e018], dl
inc eax
cmp eax, 0x20
jl 0x40c880
inc esi
cmp esi, 0x10
mov dword [esp + 0x10], esi
jl 0x40c5e1
mov ecx, dword [esp + 0x7c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004366ef
add esp, 0x70
ret