Function at 0x6b8390
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov ecx, dword [0x93ee7c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x6b85ed
sub esp, 0x38
mov eax, dword [esp + 0x40]
lea ecx, [eax + 8]
mov dword [esp + 0x34], ecx
mov edx, eax
and eax, 7
cvtsi2sd xmm0, eax
movsd qword [esp + 0x20], xmm0
lea eax, [edx + 0x10]
mov dword [esp + 0x30], eax
and edx, 0xf
cvtsi2sd xmm1, edx
movsd qword [esp + 0x18], xmm1
movsd xmm2, qword [0x789dd0]
movsd qword [esp], xmm2
movsd qword [esp + 8], xmm0
call fcn.0047ad90
movsd xmm0, qword [0x789db8]
mulsd xmm0, qword [esp + 0x10]
movsd qword [esp], xmm0
call fcn.0047b3e0
movsd xmm0, qword [esp + 8]
cvttsd2si eax, xmm0
mov ecx, eax
mov eax, 0xcccccccd
imul ecx
lea eax, [ecx + edx]
sar eax, 3
mov edx, ecx
sar ecx, 0x1f
sub eax, ecx
lea eax, [eax + eax*4]
shl eax, 1
sub edx, eax
mov eax, dword [esp + 0x34]
imul edx, eax
mov dword [esp + 0x34], edx
movsd xmm0, qword [0x789dd0]
movsd qword [esp], xmm0
movsd xmm1, qword [esp + 0x20]
movsd qword [esp + 8], xmm1
call fcn.0047ad90
movsd xmm0, qword [0x789db0]
mulsd xmm0, qword [esp + 0x10]
movsd qword [esp], xmm0
call fcn.0047b3e0
movsd xmm0, qword [esp + 8]
cvttsd2si eax, xmm0
mov ecx, eax
mov eax, 0xcccccccd
imul ecx
lea eax, [ecx + edx]
sar eax, 3
mov edx, ecx
sar ecx, 0x1f
sub eax, ecx
lea eax, [eax + eax*4]
shl eax, 1
sub edx, eax
mov eax, dword [esp + 0x34]
imul edx, eax
and edx, 0xff
mov dword [esp + 0x2c], edx
movsd xmm0, qword [0x789dd0]
movsd qword [esp], xmm0
movsd xmm1, qword [esp + 0x18]
movsd qword [esp + 8], xmm1
call fcn.0047ad90
movsd xmm0, qword [0x789dc0]
mulsd xmm0, qword [esp + 0x10]
movsd qword [esp], xmm0
call fcn.0047b3e0
movsd xmm0, qword [esp + 8]
cvttsd2si eax, xmm0
mov dword [esp + 0x34], eax
mov ecx, 0xcccccccd
imul ecx
mov eax, dword [esp + 0x34]
add edx, eax
sar edx, 3
mov ebx, eax
sar eax, 0x1f
sub edx, eax
lea eax, [edx + edx*4]
shl eax, 1
sub ebx, eax
mov eax, dword [esp + 0x30]
imul ebx, eax
mov dword [esp + 0x34], ebx
movsd xmm0, qword [0x789dd0]
movsd qword [esp], xmm0
movsd xmm0, qword [esp + 0x18]
movsd qword [esp + 8], xmm0
call fcn.0047ad90
movsd xmm0, qword [0x789dc8]
mulsd xmm0, qword [esp + 0x10]
movsd qword [esp], xmm0
call fcn.0047b3e0
movsd xmm0, qword [esp + 8]
cvttsd2si eax, xmm0
mov dword [esp + 0x30], eax
mov ecx, 0xcccccccd
imul ecx
mov eax, dword [esp + 0x30]
lea ecx, [eax + edx]
sar ecx, 3
mov edx, eax
sar eax, 0x1f
sub ecx, eax
lea eax, [ecx + ecx*4]
shl eax, 1
sub edx, eax
mov eax, dword [esp + 0x34]
imul edx, eax
and edx, 0xff
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x2c]
xor ebp, ebp
jmp 0x6b85d5
movzx esi, byte [ecx + ebp]
xchg esi, ebx
not ebx
xchg esi, ebx
and esi, 0xff
mov edi, ebp
xchg ebp, ebx
not ebx
xchg ebp, ebx
imul ebp, ebx
add edx, edi
add edx, ebp
and edx, 0xff
add edx, 0x80
xor esi, edx
xchg esi, ebx
not ebx
xchg esi, ebx
xchg esi, eax
mov byte [ecx + edi], al
xchg esi, eax
lea ebp, [edi + 1]
mov edx, dword [esp + 0x28]
cmp eax, ebp
jg 0x6b8596
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x50], eax
add esp, 0x38
ret
call fcn.00470430
jmp fcn.006b8390