Function at 0x41a430
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x24
mov esi, ecx
mov edi, dword [esp + 0x38]
mov byte [esp + 3], 0
mov dword [esp + 0x20], ecx
jmp 0x41a47c
lea eax, [ebx + ebp]
lea edx, [ebx + ebp]
dec edx
movzx ecx, byte [edx]
mov byte [eax], cl
mov esi, dword [esp + 4]
mov eax, dword [edi]
movzx ecx, byte [esp + 0xb]
mov byte [eax + esi], cl
inc dword [edi + 4]
cmp byte [esp + 3], 0xa
mov esi, dword [esp + 0x20]
je 0x41a6ed
push 0x1006c792
push dword [0x44726c]
call fcn.0043ae20
add esp, 8
push 8
push 1
lea ecx, [esp + 0xb]
push ecx
push dword [esi]
call eax
test eax, eax
setg cl
jg 0x41a4ac
cmp dword [esi], 0xffffffff
jne 0x41a6af
test eax, eax
jle 0x41a6e5
movzx eax, byte [esp + 3]
mov byte [esp + 0xb], al
mov ebx, dword [edi]
mov esi, dword [edi + 4]
mov edx, esi
sub edx, ebx
mov dword [esp + 0x14], esi
cmp esi, dword [edi + 8]
mov dword [esp + 0x10], ecx
je 0x41a4e0
mov ebp, ebx
jmp 0x41a648
mov dword [esp + 0xc], ebx
lea eax, [edx - 0x1a2ad7d6]
mov ecx, edx
xor ecx, 1
and eax, 1
lea eax, [ecx + eax*2]
mov esi, edx
shr esi, 1
mov dword [esp + 4], edx
lea ecx, [esi + edx]
cmp ecx, eax
ja 0x41a506
mov ecx, eax
mov dword [esp + 0x1c], ecx
push ecx
call fcn.00408770
add esp, 4
mov ebp, eax
mov ebx, dword [esp + 0xc]
test ebx, ebx
je 0x41a633
cmp ebp, ebx
mov ebx, dword [esp + 4]
jbe 0x41a5df
cmp dword [esp + 0x14], ebp
jbe 0x41a5df
test ebx, ebx
je 0x41a625
mov edx, dword [esp + 4]
mov eax, dword [esp + 0xc]
add eax, edx
dec eax
lea ecx, [edx + ebp]
dec ecx
mov esi, edx
and esi, 7
je 0x41a574
neg esi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
dec edx
cmp esi, edx
jne 0x41a560
add eax, edx
add ecx, edx
add edx, dword [esp + 4]
mov esi, dword [esp + 0xc]
sub esi, dword [esp + 0x14]
cmp esi, 0xfffffff8
ja 0x41a625
neg edx
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + esi]
mov byte [ecx + esi], bl
movzx ebx, byte [eax + esi - 1]
mov byte [ecx + esi - 1], bl
movzx ebx, byte [eax + esi - 2]
mov byte [ecx + esi - 2], bl
movzx ebx, byte [eax + esi - 3]
mov byte [ecx + esi - 3], bl
movzx ebx, byte [eax + esi - 4]
mov byte [ecx + esi - 4], bl
movzx ebx, byte [eax + esi - 5]
mov byte [ecx + esi - 5], bl
movzx ebx, byte [eax + esi - 6]
mov byte [ecx + esi - 6], bl
movzx ebx, byte [eax + esi - 7]
mov byte [ecx + esi - 7], bl
add esi, 0xfffffff8
cmp edx, esi
jne 0x41a590
jmp 0x41a625
mov ecx, ebx
shr ecx, 2
mov eax, dword [esp + 0xc]
mov edi, ebp
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov edx, ebx
and edx, 0xfffffffc
lea edi, [edx + ebp]
add edx, dword [esp + 0xc]
and esi, 1
mov eax, edx
mov dword [esp + 0x18], edi
mov ecx, esi
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esp + 0x38]
test bl, 1
je 0x41a625
mov eax, dword [esp + 4]
and eax, 2
movzx ecx, byte [edx + eax]
mov edx, dword [esp + 0x18]
mov byte [edx + eax], cl
push dword [edi]
call fcn.00408780
add esp, 4
mov ebx, dword [esp + 0xc]
mov dword [edi], ebp
mov edx, dword [esp + 4]
lea eax, [edx + ebp]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x1c]
add eax, ebp
mov dword [edi + 8], eax
cmp edx, edx
mov esi, edx
jae 0x41a460
add ebx, esi
sub ebx, dword [esp + 0x14]
mov dword [esp + 4], esi
add ebp, esi
cmp ebx, 1
jg 0x41a450
lea edi, [ebp + 1]
mov ecx, ebx
shr ecx, 2
mov eax, ebp
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov edx, ebx
and edx, 0xfffffffc
lea eax, [edx + ebp]
inc eax
add edx, ebp
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov esi, edx
mov edi, eax
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov edi, dword [esp + 0x38]
test bl, 1
mov esi, dword [esp + 4]
je 0x41a460
and ebx, 2
add eax, ebx
add edx, ebx
jmp 0x41a457
push 0xea8d1240
push dword [0x44726c]
call fcn.0043ae20
add esp, 8
push 2
push dword [esi]
call eax
push 0xa3d60213
push dword [0x44726c]
call fcn.0043ae20
add esp, 8
push dword [esi]
call eax
mov dword [esi], 0xffffffff
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret 4