Function at 0x41bcf0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov edi, ecx
mov byte [esp + 2], 0
mov dword [esp + 0x10], ecx
jmp 0x41bd58
mov eax, dword [esp + 0x30]
push dword [eax]
call fcn.00408430
add esp, 4
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x30]
mov dword [ecx], edi
lea eax, [edi + esi]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x14]
add eax, edi
mov dword [ecx + 8], eax
mov edx, dword [esp + 0x18]
movzx eax, byte [esp + 3]
mov ebp, edi
mov edi, dword [esp + 0x10]
mov byte [ebp + esi], al
inc dword [ecx + 4]
cmp byte [esp + 2], 0xa
je 0x41bf37
push 0x1006c792
push dword [0x449080]
call fcn.0043c760
add esp, 8
push 8
push 1
lea ecx, [esp + 0xa]
push ecx
push dword [edi]
call eax
test eax, eax
setg dl
jg 0x41bd88
cmp dword [edi], 0xffffffff
jne 0x41beff
test eax, eax
jle 0x41bf35
movzx eax, byte [esp + 2]
mov ecx, dword [esp + 0x30]
mov ebp, dword [ecx]
mov ebx, dword [ecx + 4]
mov esi, ebx
sub esi, ebp
cmp ebx, dword [ecx + 8]
jne 0x41bd46
mov byte [esp + 3], al
mov dword [esp + 0x18], edx
lea eax, [esi + 1]
mov ecx, esi
shr ecx, 1
add ecx, esi
cmp ecx, eax
ja 0x41bdbe
mov ecx, eax
mov dword [esp + 0x14], ecx
push ecx
call fcn.00408420
add esp, 4
mov edi, eax
test ebp, ebp
je 0x41bd22
mov edx, ebp
xor edx, ebx
mov ecx, ebp
not ecx
and ecx, ebx
add ecx, ecx
mov ebx, ecx
sub ebx, edx
cmp edi, ebp
mov dword [esp + 8], edi
jbe 0x41beb2
lea eax, [ebx + ebp]
cmp eax, edi
jbe 0x41beb2
test ebx, ebx
je 0x41bd10
mov dword [esp + 4], ecx
mov eax, dword [esp + 8]
add eax, ebx
dec eax
lea ecx, [ebx + ebp]
dec ecx
mov edi, ebx
and ebx, 7
je 0x41be46
mov dword [esp + 0xc], edx
neg ebx
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ecx + ebp]
mov byte [eax + ebp], dl
dec ebp
cmp ebx, ebp
jne 0x41be30
add ecx, ebp
add eax, ebp
add edi, ebp
mov edx, dword [esp + 0xc]
sub edx, dword [esp + 4]
cmp edx, 0xfffffff8
ja 0x41bd10
neg edi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [ecx + edx]
mov byte [eax + edx], bl
movzx ebx, byte [ecx + edx - 1]
mov byte [eax + edx - 1], bl
movzx ebx, byte [ecx + edx - 2]
mov byte [eax + edx - 2], bl
movzx ebx, byte [ecx + edx - 3]
mov byte [eax + edx - 3], bl
movzx ebx, byte [ecx + edx - 4]
mov byte [eax + edx - 4], bl
movzx ebx, byte [ecx + edx - 5]
mov byte [eax + edx - 5], bl
movzx ebx, byte [ecx + edx - 6]
mov byte [eax + edx - 6], bl
movzx ebx, byte [ecx + edx - 7]
mov byte [eax + edx - 7], bl
add edx, 0xfffffff8
cmp edi, edx
jne 0x41be60
jmp 0x41bd10
mov ecx, ebx
shr ecx, 2
mov eax, ebp
mov dword [esp + 4], ebx
mov ebx, edi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov edx, dword [esp + 4]
and edx, 0xfffffffc
lea eax, [ebx + edx]
add edx, ebp
mov ecx, dword [esp + 4]
shr ecx, 1
and ecx, 1
mov ebx, edx
mov edi, eax
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ebx, dword [esp + 4]
test bl, 1
je 0x41bd10
and ebx, 2
movzx ecx, byte [edx + ebx]
mov byte [eax + ebx], cl
jmp 0x41bd10
push 0xea8d1240
push dword [0x449080]
call fcn.0043c760
add esp, 8
push 2
push dword [edi]
call eax
push 0xa3d60213
push dword [0x449080]
call fcn.0043c760
add esp, 8
push dword [edi]
call eax
mov dword [edi], 0xffffffff
xor edx, edx
mov eax, edx
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret 4