Function at 0x77b81c
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffbc
push ebx
push esi
push edi
mov ebx, ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov edi, dword [ebp + 0xc]
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00518114
mov dl, 6
mov eax, dword [ebp - 8]
call fcn.00518114
movzx eax, bl
mov dword [ebp - 0x44], eax
fild dword [ebp - 0x44]
fdiv dword [0x77ba04]
fstp qword [ebp - 0x20]
wait
fld1
fsub qword [ebp - 0x20]
fstp qword [ebp - 0x28]
wait
cmp dword [ebp + 0x10], 0
jge 0x77b86a
xor eax, eax
jmp 0x77b86d
mov eax, dword [ebp + 0x10]
mov esi, eax
cmp dword [ebp + 0x14], 0
jge 0x77b879
xor eax, eax
jmp 0x77b87c
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x30]
dec eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x30]
add eax, dword [ebp + 0x14]
dec eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x38]
jge 0x77b8a7
mov eax, dword [ebp - 0x34]
jmp 0x77b8aa
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x24]
dec eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x24]
add eax, dword [ebp + 0x10]
dec eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x40]
jge 0x77b8d5
mov eax, dword [ebp - 0x3c]
jmp 0x77b8d8
mov eax, dword [ebp - 0x40]
mov edx, edi
and dl, 0xff
mov byte [ebp - 0x15], dl
mov edx, edi
shr edx, 8
mov ecx, edx
and cl, 0xff
mov byte [ebp - 0x16], cl
shr edx, 8
and dl, 0xff
mov byte [ebp - 0x17], dl
sub eax, esi
jl 0x77b9fb
inc eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0xc], esi
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.00516f10
mov esi, eax
mov edx, dword [ebp - 0xc]
sub edx, dword [ebp + 0x10]
mov eax, dword [ebp - 8]
call fcn.00516f10
mov edi, eax
mov eax, dword [ebp - 0x10]
lea eax, [eax + eax*2]
add esi, eax
cmp dword [ebp + 0x14], 0
jge 0x77b93d
mov eax, dword [ebp + 0x14]
cdq
xor eax, edx
sub eax, edx
lea eax, [eax + eax*2]
add edi, eax
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
sub edx, eax
jl 0x77b9ef
inc edx
mov dword [ebp - 0x30], edx
cmp byte [ebp + 8], 0
je 0x77b975
movzx eax, byte [edi + 2]
shl eax, 0x10
mov ax, word [edi]
push eax
movzx eax, byte [ebp - 0x15]
shl eax, 0x10
mov ax, word [ebp - 0x17]
push eax
call fcn.0077b7f4
test al, al
jne 0x77b9e0
mov ebx, edi
movzx eax, byte [esi]
mov dword [ebp - 0x44], eax
fild dword [ebp - 0x44]
fmul qword [ebp - 0x20]
movzx eax, byte [ebx]
mov dword [ebp - 0x44], eax
fild dword [ebp - 0x44]
fmul qword [ebp - 0x28]
faddp st(1)
call fcn.004074c4
mov byte [ebx], al
movzx eax, byte [esi + 1]
mov dword [ebp - 0x44], eax
fild dword [ebp - 0x44]
fmul qword [ebp - 0x20]
movzx eax, byte [ebx + 1]
mov dword [ebp - 0x44], eax
fild dword [ebp - 0x44]
fmul qword [ebp - 0x28]
faddp st(1)
call fcn.004074c4
mov byte [ebx + 1], al
movzx eax, byte [esi + 2]
mov dword [ebp - 0x44], eax
fild dword [ebp - 0x44]
fmul qword [ebp - 0x20]
movzx eax, byte [ebx + 2]
mov dword [ebp - 0x44], eax
fild dword [ebp - 0x44]
fmul qword [ebp - 0x28]
faddp st(1)
call fcn.004074c4
mov byte [ebx + 2], al
add edi, 3
add esi, 3
dec dword [ebp - 0x30]
jne 0x77b94f
inc dword [ebp - 0xc]
dec dword [ebp - 0x2c]
jne 0x77b905
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10