Function at 0x414ea0
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x3c
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov edi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + edi + 2], 0
lea edi, [edi + 2]
jne 0x414ec0
mov esi, dword [ecx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x414ee0
sar edi, 1
sar eax, 1
lea ecx, [edi + eax]
add ecx, 2
test ecx, ecx
mov dword [esp + 4], edi
jns 0x414f04
mov eax, 0xffffffff
jmp 0x414f0d
add eax, edi
lea eax, [eax*2 + 4]
push eax
call fcn.00408b20
add esp, 4
movzx ecx, word [esi]
mov edi, eax
test cx, cx
je 0x414f41
add esi, 2
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x414f30
mov dword [esp + 0x10], eax
mov word [edi], 0
mov word [esp + 0x18], 0xb86b
xor ecx, ecx
mov dl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x18]
lea ebp, [ecx - 0x731b57c1]
and ebp, esi
lea ebx, [ecx + esi]
add ebx, 0x8ce4a83f
add ebp, ebp
sub ebx, ebp
add bl, 8
mov byte [esp + ecx + 0x18], bl
mov ecx, 1
test dl, 1
mov edx, 0
jne 0x414f60
movzx ecx, word [esp + 0x18]
mov word [edi], cx
add edi, 2
mov eax, dword [esp + 0x5c]
movzx ecx, word [eax]
test cx, cx
je 0x414fc3
lea edx, [eax + 2]
mov esi, dword [esp + 0x10]
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x414fb0
jmp 0x414fc7
mov esi, dword [esp + 0x10]
mov word [edi], 0
lea eax, [esp + 8]
push 0x60
push 7
push 0x120089
push eax
mov ebx, esi
push esi
call fcn.0043dbb0
add esp, 0x14
mov edi, eax
mov eax, dword [esp + 0x54]
mov esi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x415000
mov ecx, dword [esp + 0x58]
mov ebp, dword [ecx]
mov ecx, 0xfffffffe
mov edx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
cmp word [ebp + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x415020
sar eax, 1
sar ecx, 1
add edx, eax
lea eax, [ecx + edx]
add eax, 3
test eax, eax
jns 0x415042
mov eax, 0xffffffff
jmp 0x41504b
add edx, ecx
lea eax, [edx*2 + 6]
push eax
call fcn.00408b20
add esp, 4
movzx ecx, word [esi]
mov edx, eax
test cx, cx
je 0x415081
add esi, 2
mov edx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x415070
mov word [edx], 0x2f
add edx, 2
movzx ecx, word [ebp]
test cx, cx
je 0x4150b4
add ebp, 2
mov esi, dword [esp + 0x5c]
nop
nop
nop
nop
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [ebp]
add ebp, 2
test cx, cx
jne 0x4150a0
jmp 0x4150b8
mov esi, dword [esp + 0x5c]
mov word [edx], 0x2f
add edx, 2
movzx ecx, word [esi]
test cx, cx
je 0x4150e3
add esi, 2
mov ebp, ebx
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x4150d0
jmp 0x4150e5
mov ebp, ebx
mov dword [esp + 0x28], eax
mov word [edx], 0
mov dword [esp + 0x18], 0x662524e0
mov eax, 0x3d00c3fb
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x3d00c3e3]
xor ecx, eax
mov edx, ecx
not edx
and edx, 1
add ecx, 0x27
or ecx, 1
add ecx, edx
mov byte [esp + eax - 0x3d00c3e3], cl
inc eax
cmp eax, 0x3d00c3ff
jne 0x415100
xor eax, eax
cmp edi, dword [esp + 0x18]
sete al
jmp dword [eax*4 + 0x442f4c]