Function at 0x10049b9
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe8
push esi
mov dword [ebp - 4], ecx
mov eax, 8
shl eax, 2
mov ecx, dword [eax + 0x46c3b8]
add ecx, 0x400
mov edx, 8
shl edx, 2
mov dword [edx + 0x46c3b8], ecx
mov eax, 8
imul ecx, eax, 0
mov edx, dword [ecx + 0x46c3b8]
add edx, 0x400
mov eax, 8
imul ecx, eax, 0
mov dword [ecx + 0x46c3b8], edx
mov edx, 8
imul eax, edx, 5
mov ecx, dword [eax + 0x46c3b8]
add ecx, 0x400
mov edx, 8
imul eax, edx, 5
mov dword [eax + 0x46c3b8], ecx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ecx + 0x38]
sub eax, dword [edx + 0x34]
shr eax, 0xc
mov ecx, dword [ebp - 4]
imul eax, dword [ecx + 0x40]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x34]
add ecx, eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov edx, dword [edx + 0x38]
sub edx, dword [eax + 0x34]
and edx, 0xfff
mov eax, dword [ebp - 4]
imul edx, dword [eax + 0x40]
shr edx, 0xc
add ecx, edx
mov dword [ebp - 0x78], ecx
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x3c]
cmp edx, dword [ebp - 0x78]
ja 0x1004dab
mov dword [ebp - 0xac], 1
jmp 0x1007be3
mov dword [ebp - 0xac], 0
jmp 0x1007be3
mov eax, dword [ebp - 0x3c]
add eax, 1
mov dword [ebp - 0x58], eax
mov ecx, 4
shl ecx, 0
mov edx, dword [ecx + 0x46c370]
movzx eax, byte [edx]
mov ecx, 4
shl ecx, 0
mov edx, dword [ecx + 0x46c370]
mov ecx, dword [ebp - 0x24]
mov al, byte [ecx + eax]
mov byte [edx], al
mov ecx, 4
shl ecx, 0
mov edx, dword [ecx + 0x46c370]
add edx, dword [ebp - 0x58]
mov eax, 4
shl eax, 0
mov dword [eax + 0x46c370], edx
mov ecx, 4
shl ecx, 1
mov edx, dword [ecx + 0x46c370]
movzx eax, byte [edx]
mov ecx, 4
shl ecx, 1
mov edx, dword [ecx + 0x46c370]
mov ecx, dword [ebp - 0x24]
mov al, byte [ecx + eax]
mov byte [edx], al
mov ecx, 4
shl ecx, 1
mov edx, dword [ecx + 0x46c370]
add edx, dword [ebp - 0x58]
mov eax, 4
shl eax, 1
mov dword [eax + 0x46c370], edx
mov ecx, 4
imul edx, ecx, 3
mov eax, dword [edx + 0x46c370]
movzx ecx, byte [eax]
mov edx, 4
imul eax, edx, 3
mov edx, dword [eax + 0x46c370]
mov eax, dword [ebp - 0x24]
mov cl, byte [eax + ecx + 0x300]
mov byte [edx], cl
mov edx, 4
imul eax, edx, 3
mov ecx, dword [eax + 0x46c370]
add ecx, dword [ebp - 0x58]
mov edx, 4
imul eax, edx, 3
mov dword [eax + 0x46c370], ecx
mov ecx, 4
shl ecx, 2
mov edx, dword [ecx + 0x46c370]
movzx eax, byte [edx]
mov ecx, 4
shl ecx, 2
mov edx, dword [ecx + 0x46c370]
mov ecx, dword [ebp - 0x24]
mov al, byte [ecx + eax + 0x400]
mov byte [edx], al
mov ecx, 4
shl ecx, 2
mov edx, dword [ecx + 0x46c370]
add edx, dword [ebp - 0x58]
mov eax, 4
shl eax, 2
mov dword [eax + 0x46c370], edx
mov ecx, 4
imul edx, ecx, 5
mov eax, dword [edx + 0x46c370]
movzx ecx, byte [eax]
mov edx, 4
imul eax, edx, 5
mov edx, dword [eax + 0x46c370]
mov eax, dword [ebp - 0x24]
mov cl, byte [eax + ecx + 0x200]
mov byte [edx], cl
mov edx, 4
imul eax, edx, 5
mov ecx, dword [eax + 0x46c370]
add ecx, dword [ebp - 0x58]
mov edx, 4
imul eax, edx, 5
mov dword [eax + 0x46c370], ecx
mov ecx, 4
imul edx, ecx, 0
mov eax, dword [edx + 0x46c370]
movzx ecx, byte [eax]
mov edx, 4
imul eax, edx, 0
mov edx, dword [eax + 0x46c370]
mov eax, dword [ebp - 0x24]
mov cl, byte [eax + ecx + 0x100]
mov byte [edx], cl
mov edx, dword [0x463728]
add edx, dword [ebp - 0x3c]
add edx, dword [0x463728]
mov dword [0x463728], edx
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 4]
call fcn.01004461
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x40], eax
jmp 0x100d802
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
je 0x1000413
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x78]
mov dword [ecx + 0x38], edx
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0xcc], eax
jmp 0x100c070
mov edx, dword [ebp - 0x3c]
shl edx, 0x14
mov dword [0x46c308], edx
mov dword [0x46372c], 6
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x44]
add ecx, 0x140
mov edx, dword [ebp - 4]
mov dword [edx + 0x44], ecx
mov eax, 1
imul ecx, eax, 0
add ecx, 0x4102c8
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x3c], 0
je 0x1006a96
mov edx, dword [ebp - 0x24]
add edx, 0x500
mov dword [ebp - 0x24], edx
jmp 0x1006a96
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov ecx, dword [edx + 0x34]
xor ecx, dword [eax + 0x38]
and ecx, 0xff000000
jne 0x100056a
mov edx, dword [ebp - 4]
mov esi, dword [edx + 0x3c]
shl esi, 8
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x30]
call fcn.010061df
and eax, 0xff
add esi, eax
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x3c], esi
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x34]
shl eax, 8
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x34], eax
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x38]
shl eax, 8
add eax, 0xff
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x38], eax
jmp 0x100d802