Function at 0xb7f641
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
mov dword [ebp - 4], eax
mov edx, 0x45a1a0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call fcn.00c24c09
mov eax, dword [ebp - 4]
cmp byte [eax + 0x314], 0
je 0xb7f670
mov dword [ebp - 0x1c], 0xff
jmp 0xb7f677
mov dword [ebp - 0x1c], 0x100
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x310], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
dec eax
test eax, eax
jl 0xb7f6d3
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 8], 0
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0x1c]
jge 0xb7f6bd
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call fcn.00c24919
cmp dword [eax], 0
jne 0xb7f6cb
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x310], eax
jmp 0xb7f6d3
inc dword [ebp - 8]
dec dword [ebp - 0x20]
jne 0xb7f6a2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
dec eax
test eax, eax
jl 0xb7f72f
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 8], 0
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call fcn.00c24919
mov edx, dword [ebp - 8]
mov dword [eax + 8], edx
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call fcn.00c24919
mov edx, dword [ebp - 8]
lea edx, [edx + edx*2]
mov ecx, dword [ebp - 4]
mov bx, word [eax + 0xc]
mov word [ecx + edx + 0x10], bx
mov bl, byte [eax + 0xe]
mov byte [ecx + edx + 0x12], bl
inc dword [ebp - 8]
dec dword [ebp - 0x20]
jne 0xb7f6ec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xc]
mov edx, dword [edx + 8]
dec edx
sub edx, eax
jl 0xb7f846
inc edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call fcn.00c24919
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
cmp dword [eax], 0
jne 0xb7f77e
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x24]
mov dword [edx + 8], eax
jmp 0xb7f83a
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0x2fd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
dec eax
test eax, eax
jl 0xb7f823
inc eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0xc], 0
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call fcn.00c24919
xor ebx, ebx
mov bl, byte [eax + 0xc]
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax + 0xc]
sub ebx, eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call fcn.00c24919
movzx eax, byte [eax + 0xd]
mov edx, dword [ebp - 0x24]
movzx edx, byte [edx + 0xd]
sub eax, edx
add ebx, eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call fcn.00c24919
movzx eax, byte [eax + 0xe]
mov edx, dword [ebp - 0x24]
movzx edx, byte [edx + 0xe]
sub eax, edx
add ebx, eax
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x14]
jge 0xb7f81b
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x18], eax
inc dword [ebp - 0xc]
dec dword [ebp - 0x28]
jne 0xb7f7a7
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call fcn.00c24919
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x24]
mov dword [edx + 8], eax
inc dword [ebp - 8]
dec dword [ebp - 0x20]
jne 0xb7f751
mov eax, dword [ebp - 4]
cmp byte [eax + 0x314], 0
je 0xb7f8a9
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x310]
mov edx, dword [ebp - 4]
mov byte [edx + 0x315], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov byte [edx + eax + 0x10], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov byte [edx + eax + 0x11], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x310]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 4]
mov byte [edx + eax + 0x12], 0
mov eax, dword [ebp - 4]
inc dword [eax + 0x310]
pop ebx
mov esp, ebp
pop ebp
ret