Function at 0x4d1250
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x68
mov eax, dword [0x5d7008]
xor eax, esp
mov dword [esp + 0x64], eax
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
movups xmm5, xmmword [edi]
movups xmm7, xmmword [edi + 0x10]
movaps xmmword [esp + 0x30], xmm5
movaps xmmword [esp + 0x40], xmm7
movups xmm4, xmmword [edi + 0x20]
movups xmm6, xmmword [edi + 0x30]
movaps xmmword [esp + 0x10], xmm4
movaps xmmword [esp + 0x20], xmm6
movups xmm0, xmmword [edi + 0x40]
movaps xmmword [esp + 0x50], xmm0
cmp esi, 0x10
jae 0x4d12cf
xorps xmm0, xmm0
movaps xmmword [esp + 0x50], xmm0
test esi, esi
je 0x4d161c
push esi
push edx
lea eax, [esp + 0x58]
push eax
call fcn.00540f80
movups xmm0, xmmword [esp + 0x5c]
add esp, 0xc
movaps xmm5, xmmword [esp + 0x30]
movaps xmm7, xmmword [esp + 0x40]
jmp 0x4d1550
mov eax, edx
neg eax
and eax, 0xf
je 0x4d1390
movups xmm0, xmmword [edx]
add edx, eax
sub esi, eax
movaps xmm2, xmmword [0x5cf1a0]
movaps xmm3, xmm5
movaps xmmword [esp + 0x50], xmm0
movaps xmm0, xmm7
shl eax, 4
movups xmm1, xmmword [eax + 0x5b3ab0]
pshufb xmm0, xmm1
pxor xmm2, xmm1
pshufb xmm5, xmm2
pshufb xmm7, xmm2
por xmm5, xmm0
movaps xmm0, xmmword [esp + 0x10]
pshufb xmm0, xmm1
pshufb xmm3, xmm1
por xmm7, xmm0
movaps xmm0, xmmword [esp + 0x10]
pshufb xmm0, xmm2
movaps xmmword [esp + 0x10], xmm0
movaps xmm0, xmm6
movaps xmm4, xmmword [esp + 0x10]
pshufb xmm0, xmm1
pshufb xmm6, xmm2
por xmm4, xmm0
movaps xmm0, xmmword [esp + 0x50]
pshufb xmm0, xmm1
movaps xmm1, xmm3
movaps xmmword [esp + 0x10], xmm4
pclmulqdq xmm1, xmmword [0x5cf0a0], 0x10
movaps xmm4, xmmword [esp + 0x10]
movaps xmmword [esp + 0x50], xmm0
por xmm0, xmm6
movaps xmm6, xmm3
pclmulqdq xmm6, xmmword [0x5cf0a0], 1
xorps xmm6, xmm0
xorps xmm6, xmm1
movaps xmmword [esp + 0x20], xmm6
mov eax, esi
shr eax, 6
test eax, eax
je 0x4d1433
movaps xmm1, xmmword [0x5cf0a0]
movaps xmm0, xmm4
movaps xmm3, xmm5
pclmulqdq xmm0, xmm1, 1
pclmulqdq xmm4, xmm1, 0x10
xorps xmm4, xmm0
movaps xmm2, xmm7
movaps xmm0, xmm6
pclmulqdq xmm6, xmmword [0x5cf0a0], 0x10
pclmulqdq xmm0, xmmword [0x5cf0a0], 1
pclmulqdq xmm5, xmm1, 0x10
pclmulqdq xmm7, xmm1, 0x10
pclmulqdq xmm3, xmm1, 1
pclmulqdq xmm2, xmm1, 1
movaps xmm1, xmm4
xorps xmm3, xmm5
movups xmm5, xmmword [edx]
xorps xmm2, xmm7
movups xmm7, xmmword [edx + 0x10]
xorps xmm0, xmm6
movups xmm4, xmmword [edx + 0x20]
pxor xmm5, xmm3
movups xmm6, xmmword [edx + 0x30]
pxor xmm4, xmm1
movaps xmm1, xmmword [0x5cf0a0]
add edx, 0x40
pxor xmm7, xmm2
pxor xmm6, xmm0
sub eax, 1
jne 0x4d13a4
movaps xmmword [esp + 0x10], xmm4
movaps xmmword [esp + 0x20], xmm6
and esi, 0x3f
cmp esi, 0x30
jb 0x4d14a9
movaps xmm2, xmmword [0x5cf0a0]
movaps xmm1, xmm7
movaps xmm0, xmm5
movaps xmm3, xmm4
pclmulqdq xmm7, xmm2, 0x10
pclmulqdq xmm5, xmm2, 0x10
pclmulqdq xmm1, xmm2, 1
xorps xmm1, xmm7
movups xmm7, xmmword [edx]
pclmulqdq xmm0, xmm2, 1
xorps xmm0, xmm5
movaps xmm5, xmm6
movups xmm6, xmmword [edx + 0x20]
pxor xmm7, xmm0
pclmulqdq xmm3, xmm2, 1
pclmulqdq xmm4, xmm2, 0x10
movups xmm2, xmmword [edx + 0x10]
xorps xmm3, xmm4
pxor xmm2, xmm1
pxor xmm6, xmm3
movaps xmmword [esp + 0x10], xmm2
sub esi, 0x30
je 0x4d1604
movups xmm0, xmmword [edx + 0x30]
jmp 0x4d1555
cmp esi, 0x20
jb 0x4d1502
movaps xmm2, xmmword [0x5cf0a0]
movaps xmm1, xmm7
movaps xmm0, xmm5
pclmulqdq xmm7, xmm2, 0x10
pclmulqdq xmm5, xmm2, 0x10
pclmulqdq xmm1, xmm2, 1
xorps xmm1, xmm7
movaps xmm7, xmm6
movups xmm6, xmmword [edx + 0x10]
pxor xmm6, xmm1
pclmulqdq xmm0, xmm2, 1
movups xmm2, xmmword [edx]
xorps xmm0, xmm5
pxor xmm2, xmm0
movaps xmm5, xmm4
movaps xmmword [esp + 0x10], xmm2
sub esi, 0x20
je 0x4d1604
movups xmm0, xmmword [edx + 0x20]
jmp 0x4d1555
cmp esi, 0x10
jb 0x4d1545
movaps xmm0, xmm5
movaps xmm2, xmm6
movups xmm6, xmmword [edx]
movaps xmmword [esp + 0x10], xmm2
pclmulqdq xmm5, xmmword [0x5cf0a0], 0x10
pclmulqdq xmm0, xmmword [0x5cf0a0], 1
xorps xmm0, xmm5
movaps xmm5, xmm7
movaps xmm7, xmm4
pxor xmm6, xmm0
sub esi, 0x10
je 0x4d1604
movups xmm0, xmmword [edx + 0x10]
jmp 0x4d1555
test esi, esi
je 0x4d15fa
movups xmm0, xmmword [edx]
movaps xmm6, xmmword [esp + 0x20]
movaps xmmword [esp + 0x50], xmm0
movaps xmm2, xmmword [0x5cf1a0]
movaps xmm0, xmm7
shl esi, 4
movaps xmm3, xmm5
movups xmm1, xmmword [esi + 0x5b3ab0]
pshufb xmm0, xmm1
pxor xmm2, xmm1
pshufb xmm5, xmm2
pshufb xmm7, xmm2
por xmm5, xmm0
movaps xmm0, xmmword [esp + 0x10]
pshufb xmm0, xmm1
pshufb xmm3, xmm1
por xmm7, xmm0
movaps xmm0, xmmword [esp + 0x10]
pshufb xmm0, xmm2
movaps xmmword [esp + 0x10], xmm0
movaps xmm0, xmm6
movaps xmm4, xmmword [esp + 0x10]
pshufb xmm0, xmm1
pshufb xmm6, xmm2
por xmm4, xmm0
movaps xmm0, xmmword [esp + 0x50]
pshufb xmm0, xmm1
movaps xmm1, xmm3
movaps xmmword [esp + 0x10], xmm4
pclmulqdq xmm1, xmmword [0x5cf0a0], 0x10
movaps xmmword [esp + 0x50], xmm0
por xmm0, xmm6
movaps xmm6, xmm3
pclmulqdq xmm6, xmmword [0x5cf0a0], 1
xorps xmm6, xmm0
xorps xmm6, xmm1
jmp 0x4d15ff
movaps xmm6, xmmword [esp + 0x20]
movaps xmm2, xmmword [esp + 0x10]
movaps xmm0, xmmword [esp + 0x50]
movups xmmword [edi], xmm5
movups xmmword [edi + 0x10], xmm7
movups xmmword [edi + 0x20], xmm2
movups xmmword [edi + 0x30], xmm6
movups xmmword [edi + 0x40], xmm0
mov ecx, dword [esp + 0x6c]
pop edi
pop esi
xor ecx, esp
call fcn.0053d630
mov esp, ebp
pop ebp
ret