Function at 0x4c7cd0
Capabilities:
Encode data using xor

Disassembly:
cmp dword [0x599318], 0
jne 0x4c7f06
movaps xmm7, xmmword [0x4458e0]
mov eax, 1
movaps xmm2, xmmword [0x4458d0]
xor ecx, ecx
movaps xmm4, xmmword [0x4458f0]
xorps xmm3, xmm3
movups xmm6, xmmword [0x445900]
movd xmm5, eax
nop word [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
movaps xmm1, xmm2
paddd xmm0, xmm7
pand xmm1, xmm0
pcmpeqd xmm1, xmm3
psrld xmm0, xmm5
pandn xmm1, xmm6
pand xmm1, xmm4
pxor xmm1, xmm0
movaps xmm0, xmm1
pand xmm0, xmm2
pcmpeqd xmm0, xmm3
pandn xmm0, xmm6
psrld xmm1, xmm5
pand xmm0, xmm4
pxor xmm0, xmm1
movaps xmm1, xmm0
pand xmm1, xmm2
pcmpeqd xmm1, xmm3
psrld xmm0, xmm5
pandn xmm1, xmm6
pand xmm1, xmm4
pxor xmm1, xmm0
movaps xmm0, xmm1
pand xmm0, xmm2
pcmpeqd xmm0, xmm3
pandn xmm0, xmm6
psrld xmm1, xmm5
pand xmm0, xmm4
pxor xmm0, xmm1
movaps xmm1, xmm0
pand xmm1, xmm2
pcmpeqd xmm1, xmm3
psrld xmm0, xmm5
pandn xmm1, xmm6
pand xmm1, xmm4
pxor xmm1, xmm0
movaps xmm0, xmm1
pand xmm0, xmm2
pcmpeqd xmm0, xmm3
pandn xmm0, xmm6
psrld xmm1, xmm5
pand xmm0, xmm4
pxor xmm0, xmm1
movaps xmm1, xmm0
pand xmm1, xmm2
pcmpeqd xmm1, xmm3
psrld xmm0, xmm5
pandn xmm1, xmm6
pand xmm1, xmm4
pxor xmm1, xmm0
movaps xmm0, xmm1
pand xmm0, xmm2
pcmpeqd xmm0, xmm3
pandn xmm0, xmm6
psrld xmm1, xmm5
pand xmm0, xmm4
pxor xmm0, xmm1
movups xmmword [ecx*4 + 0x599320], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm7
movaps xmm1, xmm0
pand xmm1, xmm2
pcmpeqd xmm1, xmm3
pandn xmm1, xmm6
psrld xmm0, xmm5
pand xmm1, xmm4
pxor xmm1, xmm0
movaps xmm0, xmm1
pand xmm0, xmm2
pcmpeqd xmm0, xmm3
psrld xmm1, xmm5
pandn xmm0, xmm6
pand xmm0, xmm4
pxor xmm0, xmm1
movaps xmm1, xmm0
pand xmm1, xmm2
pcmpeqd xmm1, xmm3
psrld xmm0, xmm5
pandn xmm1, xmm6
pand xmm1, xmm4
pxor xmm1, xmm0
movaps xmm0, xmm1
pand xmm0, xmm2
pcmpeqd xmm0, xmm3
pandn xmm0, xmm6
psrld xmm1, xmm5
pand xmm0, xmm4
pxor xmm0, xmm1
movaps xmm1, xmm0
pand xmm1, xmm2
pcmpeqd xmm1, xmm3
psrld xmm0, xmm5
pandn xmm1, xmm6
pand xmm1, xmm4
pxor xmm1, xmm0
movaps xmm0, xmm1
pand xmm0, xmm2
pcmpeqd xmm0, xmm3
pandn xmm0, xmm6
psrld xmm1, xmm5
pand xmm0, xmm4
pxor xmm0, xmm1
movaps xmm1, xmm0
pand xmm1, xmm2
pcmpeqd xmm1, xmm3
psrld xmm0, xmm5
pandn xmm1, xmm6
pand xmm1, xmm4
pxor xmm1, xmm0
movaps xmm0, xmm1
pand xmm0, xmm2
pcmpeqd xmm0, xmm3
pandn xmm0, xmm6
psrld xmm1, xmm5
pand xmm0, xmm4
pxor xmm0, xmm1
movups xmmword [ecx*4 + 0x599330], xmm0
add ecx, 8
cmp ecx, 0x100
jb 0x4c7d10
mov dword [0x599318], 1
push ebx
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x4c7fb4
mov edx, dword [esp + 0xc]
test edx, edx
je 0x4c7fb4
mov eax, dword [ebx]
push edi
mov edi, dword [esp + 0x14]
test edi, edi
je 0x4c7fb1
push esi
nop
cmp edi, 0x10
jb 0x4c7f98
mov esi, 4
nop word [eax + eax]
movzx ecx, byte [edx]
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x599320]
movzx ecx, byte [edx + 1]
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x599320]
movzx ecx, byte [edx + 2]
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x599320]
movzx ecx, byte [edx + 3]
add edx, 4
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x599320]
sub esi, 1
jne 0x4c7f40
sub edi, 0x10
jmp 0x4c7fac
movzx ecx, byte [edx]
inc edx
xor ecx, eax
shr eax, 8
movzx ecx, cl
xor eax, dword [ecx*4 + 0x599320]
dec edi
test edi, edi
jne 0x4c7f30
pop esi
mov dword [ebx], eax
pop edi
pop ebx
ret