Function at 0x4902fc
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 0xf
add esp, 0xfffff004
push eax
dec eax
jne 0x490305
mov eax, dword [ebp - 4]
add esp, 0xfffff5dc
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.00405d88
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
add eax, 3
and eax, 0x80000007
jns 0x49033a
dec eax
or eax, 0xfffffff8
inc eax
mov dl, 8
sub dl, al
mov byte [ebp - 0x1d], dl
cmp byte [ebp - 0x1d], 0
jne 0x49034b
mov byte [ebp - 0x1d], 8
xor eax, eax
mov al, byte [ebp - 0x1d]
add eax, dword [ebp - 0xc]
add eax, 3
mov dword [ebp - 0xc], eax
xor eax, eax
mov al, byte [ebp - 0x1d]
dec eax
test eax, eax
jl 0x490384
inc eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], 0
mov al, byte [ebp - 0x10]
inc eax
mov edx, dword [ebp - 0x10]
mov byte [ebp + edx - 0xfa25], al
inc dword [ebp - 0x10]
dec dword [ebp - 0x24]
jne 0x49036e
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.00405d88
xor edx, edx
mov dl, byte [ebp - 0x1d]
add eax, edx
mov dl, byte [ebp - 0x1d]
mov byte [ebp + eax - 0xfa23], dl
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.00405d88
dec eax
test eax, eax
jl 0x4903db
inc eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov edx, dword [ebp - 0x10]
mov al, byte [eax + edx]
xor edx, edx
mov dl, byte [ebp - 0x1d]
add edx, dword [ebp - 0x10]
mov byte [ebp + edx - 0xfa25], al
inc dword [ebp - 0x10]
dec dword [ebp - 0x24]
jne 0x4903b9
mov eax, dword [ebp - 0xc]
sub eax, 2
dec eax
push eax
lea edx, [ebp - 0xfa25]
xor eax, eax
mov al, byte [ebp - 0x1d]
mov ecx, 0xfa00
call fcn.00490244
mov word [ebp - 0x20], ax
mov al, byte [ebp - 0x20]
and al, 0xff
mov edx, dword [ebp - 0xc]
mov byte [ebp + edx - 0xfa28], al
movzx eax, word [ebp - 0x20]
shr eax, 8
and al, 0xff
mov edx, dword [ebp - 0xc]
mov byte [ebp + edx - 0xfa27], al
mov eax, dword [ebp - 0xc]
dec eax
test eax, eax
jl 0x490479
inc eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], 0
cmp dword [ebp - 0x10], 0
jle 0x49044b
mov eax, dword [ebp - 0x10]
mov al, byte [ebp + eax - 0xfa26]
mov edx, dword [ebp - 0x10]
xor byte [ebp + edx - 0xfa25], al
mov eax, dword [ebp - 0x10]
mov al, byte [ebp + eax - 0xfa25]
add eax, eax
mov edx, dword [ebp - 0x10]
movzx edx, byte [ebp + edx - 0xfa25]
shr edx, 7
or al, dl
mov edx, dword [ebp - 0x10]
mov byte [ebp + edx - 0xfa25], al
inc dword [ebp - 0x10]
dec dword [ebp - 0x24]
jne 0x490431
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0xc]
jge 0x4904f8
xor eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0xc]
jge 0x4904ac
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x14]
mov al, byte [ebp + eax - 0xfa25]
mov edx, dword [ebp - 0x14]
mov byte [ebp + edx - 0x1c], al
jmp 0x4904b4
mov eax, dword [ebp - 0x14]
mov byte [ebp + eax - 0x1c], 0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 8
jne 0x49048b
lea eax, [ebp - 0x1c]
mov edx, 7
call fcn.0048ff3c
xor eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov al, byte [ebp + eax - 0x1c]
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x14]
mov byte [ebp + edx - 0xfa25], al
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 8
jne 0x4904cf
add dword [ebp - 0x10], 8
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0xc]
jl 0x490486
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
mov ecx, 1
mov edx, dword [0x46aebc]
call fcn.00405f64
add esp, 4
mov eax, dword [ebp - 0xc]
dec eax
test eax, eax
jl 0x490542
inc eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
mov al, byte [ebp + eax - 0xfa25]
mov edx, dword [ebp - 4]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], al
inc dword [ebp - 0x10]
dec dword [ebp - 0x24]
jne 0x490525
mov byte [ebp - 5], 1
mov al, byte [ebp - 5]
mov esp, ebp
pop ebp
ret