Function at 0x4d12b0
Capabilities:
Encode data using xor

Disassembly:
cmp dword [0x592154], 0
jne 0x4d15fa
xor ecx, ecx
nop
lea eax, [ecx - 0xff]
cdq
lea ecx, [ecx + 1]
xor eax, edx
sub eax, edx
mov byte [ecx + 0x591557], al
shr al, 1
mov byte [ecx + 0x591757], al
lea eax, [ecx - 0xff]
cmp eax, 0xff
jle 0x4d12c0
mov edx, dword [0x5958c8]
mov ecx, 0xfffffc04
push esi
cmp edx, 2
jl 0x4d13c9
movaps xmm5, xmmword [0x554cd0]
movaps xmm4, xmmword [0x55dd50]
movaps xmm6, xmmword [0x55dd30]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
movaps xmm3, xmm4
paddd xmm2, xmm5
movaps xmm0, xmm6
pminsd xmm0, xmm2
pcmpgtd xmm3, xmm2
movaps xmm1, xmm3
pand xmm3, xmm4
pandn xmm1, xmm0
por xmm1, xmm3
movaps xmm3, xmm4
pshuflw xmm0, xmm1, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x54d4a0]
packuswb xmm0, xmm0
movd dword [ecx + 0x591d54], xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movaps xmm0, xmm6
paddd xmm2, xmm5
pminsd xmm0, xmm2
pcmpgtd xmm3, xmm2
movaps xmm1, xmm3
pand xmm3, xmm4
pandn xmm1, xmm0
por xmm1, xmm3
pshuflw xmm0, xmm1, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x54d4a0]
packuswb xmm0, xmm0
movd dword [ecx + 0x591d58], xmm0
add ecx, 8
cmp ecx, 0x3fb
jle 0x4d1313
cmp ecx, 0x3fc
jg 0x4d13f2
mov esi, 0x7f
nop
cmp ecx, 0xffffff80
jge 0x4d13dc
mov eax, 0xffffff80
jmp 0x4d13e3
cmp ecx, esi
mov eax, ecx
cmovg eax, esi
mov byte [ecx + 0x591d54], al
inc ecx
cmp ecx, 0x3fc
jle 0x4d13d0
mov ecx, 0xffffff90
cmp edx, 2
jl 0x4d14d0
movaps xmm5, xmmword [0x554cd0]
movaps xmm4, xmmword [0x55dd60]
movaps xmm6, xmmword [0x55dd20]
nop word [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm2, xmm0, 0
movaps xmm3, xmm4
paddd xmm2, xmm5
movaps xmm0, xmm6
pminsd xmm0, xmm2
pcmpgtd xmm3, xmm2
movaps xmm1, xmm3
pand xmm3, xmm4
pandn xmm1, xmm0
por xmm1, xmm3
movaps xmm3, xmm4
pshuflw xmm0, xmm1, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x54d4a0]
packuswb xmm0, xmm0
movd dword [ecx + 0x5921c8], xmm0
movd xmm0, eax
pshufd xmm2, xmm0, 0
movaps xmm0, xmm6
paddd xmm2, xmm5
pminsd xmm0, xmm2
pcmpgtd xmm3, xmm2
movaps xmm1, xmm3
pand xmm3, xmm4
pandn xmm1, xmm0
por xmm1, xmm3
pshuflw xmm0, xmm1, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x54d4a0]
packuswb xmm0, xmm0
movd dword [ecx + 0x5921cc], xmm0
add ecx, 8
cmp ecx, 0x6f
jle 0x4d1420
cmp ecx, 0x70
jg 0x4d14f4
mov esi, 0xf
cmp ecx, 0xfffffff0
jge 0x4d14e1
mov eax, 0xfffffff0
jmp 0x4d14e8
cmp ecx, esi
mov eax, ecx
cmovg eax, esi
mov byte [ecx + 0x5921c8], al
inc ecx
cmp ecx, 0x70
jle 0x4d14d5
mov eax, 0xffffff01
pop esi
cmp edx, 2
jl 0x4d15c8
movaps xmm5, xmmword [0x554cd0]
xorps xmm4, xmm4
movaps xmm6, xmmword [0x54dcf0]
movd xmm0, eax
lea ecx, [eax + 4]
pshufd xmm2, xmm0, 0
movaps xmm3, xmm4
paddd xmm2, xmm5
movaps xmm0, xmm6
pminsd xmm0, xmm2
pcmpgtd xmm3, xmm2
movaps xmm1, xmm3
pand xmm3, xmm4
pandn xmm1, xmm0
por xmm1, xmm3
movaps xmm3, xmm4
pshuflw xmm0, xmm1, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x54d4a0]
packuswb xmm0, xmm0
movd dword [eax + 0x591357], xmm0
movd xmm0, ecx
pshufd xmm2, xmm0, 0
movaps xmm0, xmm6
paddd xmm2, xmm5
pminsd xmm0, xmm2
pcmpgtd xmm3, xmm2
movaps xmm1, xmm3
pand xmm3, xmm4
pandn xmm1, xmm0
por xmm1, xmm3
pshuflw xmm0, xmm1, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x54d4a0]
packuswb xmm0, xmm0
movd dword [eax + 0x59135b], xmm0
add eax, 8
cmp eax, 0x1f8
jle 0x4d1514
cmp eax, 0x1fe
jg 0x4d15f0
mov edx, 0xff
nop dword [eax]
test eax, eax
jns 0x4d15d8
xor ecx, ecx
jmp 0x4d15e2
cmp eax, 0xff
mov ecx, eax
cmovg ecx, edx
mov byte [eax + 0x591357], cl
inc eax
cmp eax, 0x1fe
jle 0x4d15d0
mov dword [0x592154], 1
ret