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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xec
mov eax, dword [0x79b0b4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
xorps xmm2, xmm2
mov ecx, dword [ebp + 8]
movaps xmm0, xmmword [0x711230]
movaps xmm1, xmmword [0x711250]
mov dword [ebp - 0xb8], eax
xor eax, eax
movups xmm7, xmmword [ecx + eax*2]
movaps xmm5, xmm0
movaps xmm6, xmm1
pand xmm6, xmm7
pand xmm5, xmm7
pcmpeqw xmm5, xmm0
pcmpeqw xmm6, xmm2
pandn xmm6, xmmword [0x711260]
pand xmm1, xmm5
movaps xmm0, xmmword [0x711260]
movaps xmm3, xmm6
pxor xmm0, xmm5
pand xmm3, xmm0
pandn xmm6, xmm0
movups xmm0, xmmword [ebp + eax*2 - 0x24]
movaps xmm2, xmm3
movaps xmm4, xmm6
pandn xmm5, xmm0
movaps xmm0, xmm7
pandn xmm0, xmmword [0x711260]
por xmm1, xmm5
pand xmm0, xmm3
pandn xmm2, xmm1
movaps xmm1, xmmword [0x711250]
por xmm2, xmm0
movaps xmm0, xmm1
pandn xmm4, xmm2
por xmm0, xmm7
xorps xmm2, xmm2
pand xmm0, xmm6
por xmm4, xmm0
movaps xmm0, xmmword [0x711230]
movups xmmword [ebp + eax*2 - 0x24], xmm4
add eax, 8
cmp eax, 0x10
jl 0x4c3662
push esi
push edi
xor edi, edi
xor esi, esi
cmp dword [0x79fd88], 2
jl 0x4c3770
movups xmm0, xmmword [ebp - 0x24]
or ecx, 0xffffffff
xorps xmm1, xmm1
pmaxuw xmm1, xmm0
movups xmm0, xmmword [ebp - 0x14]
pmaxuw xmm2, xmm0
pmaxuw xmm1, xmm2
movaps xmm0, xmm1
psrldq xmm0, 8
pmaxuw xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
pmaxuw xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 2
pmaxuw xmm1, xmm0
movd eax, xmm1
movzx eax, ax
movzx esi, ax
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], esi
jmp 0x4c37a5
movzx ecx, word [ebp + esi*2 - 0x24]
cmp di, cx
movzx eax, di
mov edx, ecx
cmovae edx, eax
inc esi
movzx eax, dx
mov edi, eax
cmp esi, 0x10
jl 0x4c3770
movzx esi, ax
or ecx, 0xffffffff
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], esi
jmp 0x4c37a5
mov esi, dword [ebp - 0xb0]
inc ecx
mov edx, 1
xor eax, eax
mov dword [ebp - 0xa8], ecx
shl edx, cl
mov dword [ebp - 0xac], edx
lea edi, [ecx + 1]
nop
movzx ecx, word [ebp + eax*2 - 0x24]
sub esi, ecx
mov ecx, edi
add esi, esi
mov edx, esi
dec esi
sar edx, cl
and edx, 1
add edx, dword [ebp - 0xac]
add edx, esi
mov esi, dword [ebp - 0xb0]
sar edx, cl
mov dword [ebp + eax*4 - 0x64], edx
inc eax
cmp eax, 0x10
jl 0x4c37c0
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x64]
sub edx, ecx
mov eax, dword [ebp - 0x44]
add edx, 0x20
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xac], edx
mov dword [ebp - 0xa0], edx
mov edx, ecx
sub edx, eax
add edx, 0x20
mov dword [ebp - 0xbc], edx
mov dword [ebp - 0x9c], edx
mov edx, dword [ebp - 0x34]
sub dword [ebp - 0xa4], edx
mov edx, dword [ebp - 0xa4]
add edx, 0x20
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0x98], edx
mov edx, dword [ebp - 0x64]
sub edx, dword [ebp - 0x60]
add edx, 0x20
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0x94], edx
mov edx, dword [ebp - 0x50]
sub ecx, edx
add ecx, 0x20
sub edx, dword [ebp - 0x4c]
mov dword [ebp - 0xc0], ecx
add edx, 0x20
mov dword [ebp - 0x90], ecx
mov ecx, dword [ebp - 0x40]
sub eax, ecx
add eax, 0x20
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x30]
add eax, 0x20
mov dword [ebp - 0x80], edx
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x60]
sub eax, dword [ebp - 0x5c]
add eax, 0x20
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x3c]
sub ecx, eax
sub eax, dword [ebp - 0x38]
add ecx, 0x20
mov dword [ebp - 0xd8], ecx
add eax, 0x20
mov dword [ebp - 0x7c], ecx
mov ecx, dword [ebp - 0x30]
sub ecx, edx
mov dword [ebp - 0xe8], eax
sub edx, dword [ebp - 0x28]
add ecx, 0x20
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0x78], ecx
mov ecx, dword [ebp - 0x5c]
sub ecx, dword [ebp - 0x58]
add ecx, 0x20
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0xac]
mov edi, eax
mov dword [ebp - 0xe4], ecx
mov esi, eax
mov dword [ebp - 0x74], ecx
mov ecx, dword [ebp - 0x4c]
sub ecx, dword [ebp - 0x48]
add ecx, 0x20
add edx, 0x20
mov dword [ebp - 0xec], edx
mov dword [ebp - 0x68], edx
mov edx, 1
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0x70], ecx
cmp dword [0x79fd88], 2
jl 0x4c39b2
movd xmm0, eax
mov edx, 9
pshufd xmm1, xmm0, 0
movups xmm0, xmmword [ebp - 0x9c]
movaps xmm4, xmm1
movaps xmm2, xmm1
pminsd xmm4, xmm0
pmaxsd xmm2, xmm0
movups xmm0, xmmword [ebp - 0x8c]
movaps xmm3, xmm1
pmaxsd xmm1, xmm0
pminsd xmm3, xmm0
pmaxsd xmm2, xmm1
movaps xmm0, xmm2
psrldq xmm0, 8
pmaxsd xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 4
pmaxsd xmm2, xmm0
pminsd xmm4, xmm3
movaps xmm0, xmm4
movd esi, xmm2
psrldq xmm0, 8
pminsd xmm4, xmm0
movups xmm0, xmm4
psrldq xmm0, 4
pminsd xmm4, xmm0
movd edi, xmm4
mov ecx, dword [ebp + edx*4 - 0xa0]
cmp edi, ecx
mov eax, ecx
cmovle eax, edi
cmp esi, ecx
mov edi, eax
cmovge ecx, esi
inc edx
mov esi, ecx
cmp edx, 0xf
jl 0x4c39b2
mov ecx, dword [ebp - 0xa8]
test edi, edi
js 0x4c379f
cmp esi, 0x3f
jg 0x4c379f
cmp edi, 0x20
jne 0x4c3a20
cmp esi, eax
jne 0x4c3a20
cmp byte [ebp + 0x10], 0
je 0x4c3a20
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x24]
shr eax, 8
mov byte [ecx], al
mov al, byte [ebp - 0x24]
mov byte [ecx + 1], al
lea eax, [edi - 0x1d]
pop edi
mov byte [ecx + 2], 0xfc
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00462b2c
mov esp, ebp
pop ebp
ret
cmp byte [ebp + 0x14], 0
mov ecx, dword [ebp - 0xa8]
je 0x4c3a3f
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0xb4]
shl ax, cl
sub dx, ax
mov word [ebp - 0x24], dx
mov esi, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0xac]
shr eax, 8
mov byte [esi], al
mov al, byte [ebp - 0x24]
mov byte [esi + 1], al
mov eax, edx
sar eax, 4
shl cl, 2
or al, cl
shl dl, 4
mov ecx, dword [ebp - 0xbc]
mov byte [esi + 2], al
mov eax, ecx
sar eax, 2
or al, dl
shl cl, 6
or cl, byte [ebp - 0xa4]
mov edx, dword [ebp - 0xc0]
mov byte [esi + 3], al
mov eax, edx
mov byte [esi + 4], cl
mov ecx, dword [ebp - 0xc4]
sar eax, 4
shl cl, 2
or al, cl
shl dl, 4
mov ecx, dword [ebp - 0xc8]
mov byte [esi + 5], al
mov eax, ecx
sar eax, 2
or al, dl
shl cl, 6
mov edx, dword [ebp - 0xcc]
or cl, dl
mov edx, dword [ebp - 0xd0]
mov byte [esi + 6], al
mov eax, edx
mov byte [esi + 7], cl
mov ecx, dword [ebp - 0xd4]
sar eax, 4
shl cl, 2
or al, cl
shl dl, 4
mov ecx, dword [ebp - 0xd8]
mov byte [esi + 8], al
mov eax, ecx
sar eax, 2
or al, dl
shl cl, 6
or cl, byte [ebp - 0xdc]
mov edx, dword [ebp - 0xe0]
mov byte [esi + 9], al
mov eax, edx
mov byte [esi + 0xa], cl
mov ecx, dword [ebp - 0xe4]
shl cl, 2
sar eax, 4
or al, cl
shl dl, 4
mov ecx, dword [ebp - 0xe8]
mov byte [esi + 0xb], al
mov eax, ecx
shl cl, 6
or cl, byte [ebp - 0xec]
sar eax, 2
mov byte [esi + 0xd], cl
or al, dl
mov ecx, dword [ebp - 4]
mov byte [esi + 0xc], al
xor ecx, ebp
pop edi
mov eax, 0xe
pop esi
call fcn.00462b2c
mov esp, ebp
pop ebp
ret