Function at 0x415c60
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x188
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
movaps xmm5, xmmword [0x92b9f0]
mov eax, edx
mov edx, dword [ebx + 0x1c]
push esi
push edi
mov edi, dword [ebx + 0x18]
xor esi, esi
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x188], ecx
mov dword [ebp - 0x180], edx
test edi, edi
jle 0x415e44
lea ecx, [ebp - 0x168]
sub ecx, eax
mov dword [ebp - 0x170], ecx
cmp edi, 4
jb 0x415d8e
movaps xmm4, xmmword [0x92b980]
lea ecx, [ebp - 0xb8]
sub ecx, eax
mov edx, edi
mov dword [ebp - 0x174], ecx
and edx, 0xfffffffc
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x17c], edx
mov edx, dword [ebx + 8]
sub ecx, eax
mov dword [ebp - 0x178], ecx
mov ecx, dword [ebx + 0xc]
sub ecx, edx
mov dword [ebp - 0x184], ecx
mov ecx, dword [ebp - 0x184]
xorps xmm0, xmm0
add esi, 4
movd xmm1, dword [edx + ecx]
mov ecx, dword [ebp - 0x170]
punpcklbw xmm1, xmm0
punpcklwd xmm1, xmm0
cvtdq2ps xmm3, xmm1
movd xmm1, dword [edx]
add edx, 4
mulps xmm3, xmm4
punpcklbw xmm1, xmm0
punpcklwd xmm1, xmm0
movups xmm0, xmmword [eax]
movups xmmword [eax + ecx], xmm3
mov ecx, dword [ebp - 0x174]
addps xmm3, xmm5
cvtdq2ps xmm2, xmm1
rcpps xmm1, xmm3
mulps xmm2, xmm0
movaps xmm0, xmm1
mulps xmm0, xmm1
addps xmm1, xmm1
mulps xmm2, xmm4
mulps xmm0, xmm3
movups xmmword [ecx + eax], xmm2
mov ecx, dword [ebp - 0x178]
subps xmm1, xmm0
mulps xmm1, xmm2
movups xmmword [ecx + eax], xmm1
add eax, 0x10
cmp esi, dword [ebp - 0x17c]
jl 0x415d03
cmp esi, edi
jge 0x415e44
mov eax, dword [ebp - 0x16c]
jmp 0x415d94
mov dword [ebp - 0x170], ecx
mov edx, dword [ebx + 8]
lea ecx, [eax + esi*4]
movss xmm2, dword [0x92b33c]
add edx, esi
movss xmm3, dword [0x92b3bc]
mov dword [ebp - 0x17c], ecx
lea ecx, [ebp - 0xb8]
sub ecx, eax
mov dword [ebp - 0x178], ecx
lea ecx, [ebp - 0x60]
sub ecx, eax
mov eax, dword [ebx + 8]
sub dword [ebx + 0xc], eax
mov eax, edi
sub eax, esi
mov dword [ebp - 0x174], ecx
mov ecx, dword [ebp - 0x17c]
mov esi, dword [ebp - 0x170]
mov dword [ebp - 0x16c], eax
nop word [eax + eax]
mov eax, dword [ebx + 0xc]
movzx eax, byte [edx + eax]
movd xmm1, eax
movzx eax, byte [edx]
inc edx
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov eax, dword [ebp - 0x178]
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm2
mulss xmm0, dword [ecx]
movss dword [ecx + esi], xmm1
addss xmm1, xmm3
mulss xmm0, xmm2
movss dword [eax + ecx], xmm0
mov eax, dword [ebp - 0x174]
divss xmm0, xmm1
movss dword [eax + ecx], xmm0
add ecx, 4
sub dword [ebp - 0x16c], 1
jne 0x415df0
mov eax, dword [ebp - 0x180]
lea ecx, [ebp - 0x60]
push 2
and eax, 7
push edi
push ecx
push ecx
mov esi, dword [eax*4 + 0x47cde0]
mov ecx, esi
call dword [0x47611c]
call esi
add esp, 0x10
xor esi, esi
test edi, edi
jle 0x415f90
cmp edi, 2
jb 0x415ef0
movaps xmm3, xmmword [0x92ba30]
mov eax, edi
and eax, 0xfffffffe
mov dword [ebp - 0x180], eax
nop word [eax + eax]
movsd xmm1, qword [ebp + esi*4 - 0x60]
movsd xmm0, qword [ebp + esi*4 - 0x168]
mulps xmm0, xmm1
movsd xmm1, qword [ebp + esi*4 - 0xb8]
subps xmm1, xmm0
xorps xmm0, xmm0
movsd xmm0, xmm3
movsd qword [ebp + esi*4 - 0xb8], xmm1
addps xmm1, xmm0
cvtps2pd xmm0, xmm1
call fcn.00471b40
movaps xmm3, xmmword [0x92ba30]
cvttpd2dq xmm0, xmm0
movq qword [ebp + esi*4 - 0x110], xmm0
add esi, 2
cmp esi, dword [ebp - 0x180]
jl 0x415e90
cmp esi, edi
jge 0x415f90
movss xmm6, dword [0x92b444]
movsd xmm7, qword [0x92b758]
movsd xmm5, qword [0x92b6e0]
nop dword [eax + eax]
movss xmm0, dword [ebp + esi*4 - 0x168]
movaps xmm3, xmm7
mulss xmm0, dword [ebp + esi*4 - 0x60]
movss xmm1, dword [ebp + esi*4 - 0xb8]
subss xmm1, xmm0
movss dword [ebp + esi*4 - 0xb8], xmm1
addss xmm1, xmm6
cvtps2pd xmm4, xmm1
movaps xmm1, xmm5
andps xmm3, xmm4
movaps xmm0, xmm4
xorps xmm0, xmm3
movaps xmm2, xmm4
cmpltsd xmm0, xmm5
andps xmm1, xmm0
orps xmm1, xmm3
addsd xmm2, xmm1
subsd xmm2, xmm1
movsd xmm1, qword [0x92b588]
movaps xmm0, xmm2
subsd xmm0, xmm4
cmpnlesd xmm0, xmm3
andps xmm0, xmm1
subsd xmm2, xmm0
cvttsd2si eax, xmm2
mov dword [ebp + esi*4 - 0x110], eax
inc esi
cmp esi, edi
jl 0x415f10
xor esi, esi
jmp 0x415f96
xor esi, esi
test edi, edi
jle 0x415ff1
mov eax, dword [ebx + 0x10]
mov edi, dword [ebx + 0x14]
sub eax, edi
mov dword [ebx + 0x10], eax
mov al, byte [eax + edi]
test al, al
je 0x415fdc
mov cl, byte [edi]
cmp cl, 0xff
je 0x415fdc
mov edx, dword [ebp + esi*4 - 0x110]
movzx eax, al
shl ax, 7
movzx eax, ax
push eax
movzx eax, cl
mov ecx, dword [ebp - 0x188]
shl ax, 7
movzx eax, ax
push eax
call fcn.00429ea0
add esp, 8
jmp 0x415fe7
mov dword [ebp + esi*4 - 0x110], 0
mov eax, dword [ebx + 0x10]
inc esi
inc edi
cmp esi, dword [ebx + 0x18]
jl 0x415fa1
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.004575d6
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret