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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x20], 0x33c131dc
mov dword [esp + 0x24], 0x37c935c0
mov dword [esp + 0x28], 0xcb2bc93a
mov dword [esp + 0x2c], 0xcf2bcd2b
mov dword [esp + 0x30], 0xc326c12c
mov dword [esp + 0x34], 0xc720c521
mov dword [esp + 0x38], 0xdb2fd939
mov dword [esp + 0x3c], 0xdf2add20
lea eax, [esp + 0x40]
mov word [esp + 0x40], 0xd1d0
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov dword [esp + 0x4a], 0
mov word [esp + 0x4e], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x2f
ja 0x41a547
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x20]
lea esi, [ecx + 0xf8]
mov edi, edx
not edi
or edi, esi
and esi, edx
add esi, edi
neg esi
add ecx, esi
add ecx, 0x40d361f7
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x70]
add cl, 0x38
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x30
jb 0x41a500
lea edi, [esp + 0x70]
lea edx, [esp + 0x20]
mov ecx, 8
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x90]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [ebx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41a580
cmp eax, 0xffffffdd
jge 0x41a597
mov eax, 0xffffffff
jmp 0x41a59a
add eax, 0x22
push eax
call fcn.00408b20
add esp, 4
mov esi, eax
movzx ecx, word [edi]
test cx, cx
je 0x41a5d1
add edi, 2
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x41a5c0
mov word [eax], 0
movzx ecx, word [esp + 0x70]
test cx, cx
je 0x41a601
lea edx, [esp + 0x72]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41a5f0
mov word [eax], 0
mov eax, dword [ebp + 8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebx
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], 0xb30db10d
mov dword [esp + 0x24], 0xb7cbb53e
mov dword [esp + 0x28], 0x8b02892d
mov dword [esp + 0x2c], 0x8f2b8d38
mov dword [esp + 0x30], 0x8331813e
mov dword [esp + 0x34], 0x8739853d
mov dword [esp + 0x38], 0x9be19926
mov dword [esp + 0x3c], 0x9fe59de7
mov dword [esp + 0x40], 0x933c91ea
mov dword [esp + 0x44], 0x97259521
mov dword [esp + 0x48], 0xeb58e94d
mov dword [esp + 0x4c], 0xef51edaf
mov dword [esp + 0x50], 0xe356e15e
mov dword [esp + 0x54], 0xe76ee541
mov dword [esp + 0x58], 0xfba3f94c
mov dword [esp + 0x5c], 0xffb3fd58
mov dword [esp + 0x60], 0xf3f2f18a
mov word [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x49
ja 0x41a718
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x20]
lea edx, [eax + ecx]
add edx, 0xf302b718
add eax, 0x18
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
add al, 0x58
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x4a
jb 0x41a6d0
lea eax, [esp + 8]
push eax
push 0x41aa20
lea eax, [esp + 0x28]
push eax
push esi
call fcn.0041b490
add esp, 0x10
mov ebx, eax
jmp dword [0x4443e8]