Function at 0x486790
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xdc
mov eax, dword [0x79a200]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x74]
push esi
push edi
xor edi, edi
mov dword [ebp - 0xb8], ebx
push 0x40
push edi
xor esi, esi
mov dword [ebp - 0xc8], edi
push eax
mov dword [ebp - 0xcc], esi
call fcn.00690e10
movss xmm0, dword [ebx + 0x658c]
add esp, 0xc
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x6ebff0]
cvttsd2si ecx, xmm0
cmp ecx, 0xa
jge 0x4867f6
mov dword [ebp - 0x88], 0x96
jmp 0x48681a
cmp ecx, 0xc
jle 0x486807
mov dword [ebp - 0x88], 0x14
jmp 0x48681a
mov eax, 0xe
sub eax, ecx
lea ecx, [eax + eax*4]
shl ecx, 2
mov dword [ebp - 0x88], ecx
movss xmm0, dword [ebx + 0x6588]
ucomiss xmm0, dword [0x77681c]
lahf
test ah, 0x44
jnp 0x486839
mov dword [ebp - 0x88], 0x50
movzx eax, word [ebx + 0x66b4]
sub eax, 0xe
mov dword [ebp - 0xbc], eax
cmp eax, 0xe
jle 0x486c73
movzx eax, word [ebx + 0x66b6]
mov edx, 0x10
mov ecx, dword [ebp - 0xbc]
mov edi, 0x40
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xc0], edi
nop dword [eax + eax]
mov esi, 0xa
mov dword [ebp - 0x8c], esi
cmp eax, esi
jbe 0x486c43
mov eax, dword [ebx + 0x66e0]
movzx ecx, word [ebx + 0x66bc]
mov dword [ebp - 0x78], eax
mov eax, dword [ebx + 0x65b0]
mov dword [ebp - 0x7c], eax
lea eax, [edi - 8]
and eax, 0x1c
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x94], eax
movzx eax, word [ebx + 0x66c0]
lea ebx, [edx - 2]
sar ebx, cl
imul ebx, eax
mov dword [ebp - 0x9c], ebx
lea ebx, [edi - 4]
and ebx, 0x1c
mov dword [ebp - 0xa0], ebx
lea ebx, [edx - 1]
sar ebx, cl
imul ebx, eax
mov dword [ebp - 0xa4], ebx
mov ebx, edi
and ebx, 0x1c
mov dword [ebp - 0xa8], ebx
mov ebx, edx
sar ebx, cl
inc edx
imul ebx, eax
sar edx, cl
mov dword [ebp - 0xac], ebx
lea ebx, [edi + 4]
and ebx, 0x1c
imul edx, eax
mov dword [ebp - 0xb0], ebx
mov eax, 0xffffffec
mov ebx, 0x14
mov dword [ebp - 0x90], eax
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0xd0], edx
mov ecx, dword [ebp - 0x94]
and eax, 2
add ecx, eax
mov edx, dword [ebp - 0x7c]
shr edx, cl
mov edi, 0xfffffffe
mov ecx, dword [ebp - 0x98]
and edx, 3
mov dword [ebp - 0x80], eax
sub edi, ebx
mov eax, dword [ebp - 0x9c]
and edi, 2
sar esi, cl
mov ecx, dword [ebp - 0x78]
add eax, esi
mov ebx, dword [ebp - 0x8c]
inc ebx
mov dword [ebp - 0x84], esi
lea eax, [edx + eax*4]
movzx eax, word [ecx + eax*2]
mov dword [ebp + edx*4 - 0x24], eax
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x9c]
lea ecx, [ecx + edi]
shr edx, cl
mov ecx, dword [ebp - 0x98]
and edx, 3
sar ebx, cl
mov ecx, dword [ebp - 0x78]
add eax, ebx
lea eax, [edx + eax*4]
movzx eax, word [ecx + eax*2]
mov ecx, dword [ebp - 0xa0]
add ecx, dword [ebp - 0x80]
mov dword [ebp + edx*4 - 0x24], eax
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0xa4]
shr edx, cl
add eax, esi
mov ecx, dword [ebp - 0x78]
and edx, 3
mov esi, dword [ebp - 0x90]
add esi, 0xfffffffe
and esi, 2
lea eax, [edx + eax*4]
movzx eax, word [ecx + eax*2]
mov ecx, dword [ebp - 0xa0]
mov dword [ebp + edx*4 - 0x24], eax
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0xa4]
lea ecx, [ecx + esi]
add eax, ebx
shr edx, cl
mov ecx, dword [ebp - 0x78]
and edx, 3
lea eax, [edx + eax*4]
movzx eax, word [ecx + eax*2]
mov ecx, dword [ebp - 0xa8]
add ecx, dword [ebp - 0x80]
mov dword [ebp + edx*4 - 0x24], eax
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x84]
add eax, dword [ebp - 0xac]
shr edx, cl
mov ecx, dword [ebp - 0x78]
and edx, 3
lea eax, [edx + eax*4]
movzx eax, word [ecx + eax*2]
mov ecx, dword [ebp - 0xa8]
mov dword [ebp + edx*4 - 0x14], eax
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0xac]
lea ecx, [ecx + edi]
shr edx, cl
mov ecx, dword [ebp - 0x78]
and edx, 3
add eax, ebx
lea eax, [edx + eax*4]
movzx eax, word [ecx + eax*2]
mov dword [ebp + edx*4 - 0x14], eax
mov ecx, dword [ebp - 0xb0]
add ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x84]
mov edi, dword [ebp - 0xd0]
add eax, edi
shr edx, cl
mov ecx, dword [ebp - 0x78]
and edx, 3
lea eax, [edx + eax*4]
movzx eax, word [ecx + eax*2]
mov ecx, dword [ebp - 0xb0]
mov dword [ebp + edx*4 - 0x14], eax
lea eax, [edi + ebx]
mov edx, dword [ebp - 0x7c]
lea ecx, [esi + ecx]
shr edx, cl
mov ecx, dword [ebp - 0x78]
and edx, 3
lea eax, [edx + eax*4]
movzx eax, word [ecx + eax*2]
xor ecx, ecx
mov dword [ebp + edx*4 - 0x14], eax
nop word [eax + eax]
mov eax, dword [ebp + ecx*4 - 0x24]
sub eax, 0x96
cmp eax, 0x546
ja 0x486bf2
inc ecx
cmp ecx, 8
jl 0x486ab0
xor ecx, ecx
nop dword [eax]
mov eax, dword [ebp + ecx*4 - 0x24]
sub eax, dword [ebp + ecx*4 - 0x14]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x32
jg 0x486bf2
inc ecx
cmp ecx, 4
jl 0x486ad0
lea eax, [ebp - 0xdc]
xor ebx, ebx
mov dword [ebp - 0x80], eax
lea esi, [ebp - 0x24]
lea eax, [ebp - 0x34]
mov dword [ebp - 0x84], eax
xor edi, edi
mov eax, dword [esi + 4]
mov ecx, edi
sub eax, dword [esi]
add edi, 2
shl eax, 0xa
cdq
idiv dword [esi]
sar ecx, 1
add esi, 8
add ecx, ebx
mov dword [ebp + ecx*4 - 0x34], eax
cmp edi, 4
jl 0x486b05
push dword [ebp - 0x88]
mov edi, dword [ebp - 0x84]
push edi
push dword [ebp - 0xb8]
call fcn.00486e50
mov ecx, dword [ebp - 0x80]
add ebx, 2
add edi, 8
add esp, 0xc
mov dword [ebp - 0x84], edi
mov dword [ecx], eax
add ecx, 4
mov dword [ebp - 0x80], ecx
cmp ebx, 4
jl 0x486b03
mov eax, dword [ebp - 0xdc]
mov edx, eax
mov ecx, dword [ebp - 0xd8]
or edx, ecx
cmp edx, 1
jg 0x486bf2
test eax, eax
je 0x486b9d
mov eax, dword [ebp - 0x34]
add eax, 0x400
imul eax, dword [ebp - 0x24]
sar eax, 0xa
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x30]
add eax, 0x400
imul eax, dword [ebp - 0x1c]
sar eax, 0xa
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x486bc5
mov eax, dword [ebp - 0x2c]
add eax, 0x400
imul eax, dword [ebp - 0x14]
sar eax, 0xa
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x28]
add eax, 0x400
imul eax, dword [ebp - 0xc]
sar eax, 0xa
mov dword [ebp - 8], eax
mov eax, edx
xor ecx, ecx
shl eax, 5
lea eax, [ebp + eax - 0x74]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x10]
movups xmm1, xmmword [ebp + ecx*4 - 0x24]
add ecx, 4
paddd xmm1, xmm0
movups xmmword [eax - 0x10], xmm1
cmp ecx, 8
jl 0x486bd0
inc dword [ebp + edx*4 - 0xcc]
mov esi, dword [ebp - 0x8c]
mov ebx, dword [ebp - 0xb4]
add esi, 2
mov eax, dword [ebp - 0x90]
add ebx, 4
sub eax, 4
mov dword [ebp - 0x8c], esi
mov dword [ebp - 0xb4], ebx
mov dword [ebp - 0x90], eax
cmp esi, dword [ebp - 0xd4]
jl 0x486933
mov ebx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xc4]
mov edi, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xbc]
add edx, 4
add edi, 0x10
mov dword [ebp - 0xc0], edi
mov dword [ebp - 0xc4], edx
lea eax, [edx - 2]
cmp eax, ecx
movzx eax, word [ebx + 0x66b6]
jl 0x486880
mov edi, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xcc]
mov eax, edi
or eax, esi
je 0x486d0c
movss xmm2, dword [0x6ebfec]
xor ecx, ecx
imul eax, esi, 0xc8
mov edx, 0x20
movaps xmm0, xmm2
cmp eax, edi
cmovl ecx, edx
mov eax, dword [ebp + ecx - 0x64]
add eax, dword [ebp + ecx - 0x74]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mov eax, dword [ebp + ecx - 0x70]
add eax, dword [ebp + ecx - 0x60]
divss xmm0, xmm1
movaps xmm1, xmm2
movss dword [ebx + 0xe784], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [ebp + ecx - 0x6c]
add eax, dword [ebp + ecx - 0x5c]
divss xmm1, xmm0
movd xmm0, eax
mov eax, dword [ebp + ecx - 0x68]
add eax, dword [ebp + ecx - 0x58]
cvtdq2ps xmm0, xmm0
movss dword [ebx + 0xe788], xmm1
movaps xmm1, xmm2
divss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebx + 0xe78c], xmm1
divss xmm2, xmm0
movss dword [ebx + 0xe790], xmm2
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0068d76f
mov esp, ebp
pop ebp
ret