Function at 0xd53451
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
mov eax, esp
and esp, 0xfffffff0
lea esp, [esp - 0xc]
push eax
sub esp, 0x20
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x14]
movq mm7, qword [edx]
mov edi, esi
add edi, eax
movq mm2, qword [edi + eax*2]
movq mm1, qword [esi + eax*2]
movq mm6, mm1
psubusb mm1, mm2
psubusb mm2, mm6
por mm1, mm2
psubusb mm1, mm7
movq mm4, qword [esi + eax]
movq mm3, mm4
psubusb mm4, mm6
psubusb mm6, mm3
por mm4, mm6
psubusb mm4, mm7
por mm1, mm4
movq mm4, qword [esi]
movq mm0, mm4
psubusb mm4, mm3
psubusb mm3, mm0
por mm4, mm3
movq qword [esp], mm4
psubusb mm4, mm7
por mm1, mm4
neg eax
movq mm2, qword [esi + eax*4]
movq mm4, qword [edi + eax*4]
movq mm5, mm4
psubusb mm4, mm2
psubusb mm2, mm5
por mm4, mm2
psubusb mm4, mm7
por mm1, mm4
movq mm4, qword [esi + eax*2]
movq mm3, mm4
psubusb mm4, mm5
psubusb mm5, mm3
por mm4, mm5
psubusb mm4, mm7
por mm1, mm4
movq mm2, mm3
movq mm4, qword [esi + eax]
movq mm5, mm4
psubusb mm4, mm3
psubusb mm3, mm5
por mm4, mm3
movq qword [esp + 0x10], mm4
psubusb mm4, mm7
por mm1, mm4
movq mm3, qword [edi]
movq mm4, mm3
psubusb mm3, mm2
psubusb mm2, mm4
por mm2, mm3
pand mm2, qword [0x14d4440]
psrlw mm2, 1
movq mm6, mm5
movq mm3, mm0
psubusb mm5, mm3
psubusb mm3, mm6
por mm5, mm3
paddusb mm5, mm5
paddusb mm5, mm2
mov edx, dword [ebp + 0x10]
movq mm7, qword [edx]
psubusb mm5, mm7
por mm1, mm5
pxor mm5, mm5
pcmpeqb mm1, mm5
mov edx, dword [ebp + 0x18]
movq mm7, qword [edx]
movq mm4, qword [esp]
psubusb mm4, mm7
movq mm3, qword [esp + 0x10]
psubusb mm3, mm7
paddb mm4, mm3
pcmpeqb mm4, mm5
pcmpeqb mm5, mm5
pxor mm4, mm5
movq mm2, qword [esi + eax*2]
movq mm7, qword [edi]
pxor mm2, qword [0x14d4450]
pxor mm7, qword [0x14d4450]
psubsb mm2, mm7
pxor mm6, qword [0x14d4450]
pxor mm0, qword [0x14d4450]
movq mm3, mm0
psubsb mm0, mm6
paddsb mm2, mm0
paddsb mm2, mm0
paddsb mm2, mm0
pand mm1, mm2
movq mm2, mm1
pand mm2, mm4
movq mm5, mm2
paddsb mm5, qword [0x14d4470]
pxor mm0, mm0
pxor mm7, mm7
punpcklbw mm0, mm5
psraw mm0, 0xb
punpckhbw mm7, mm5
psraw mm7, 0xb
packsswb mm0, mm7
movq mm5, mm0
paddsb mm2, qword [0x14d4480]
pxor mm0, mm0
pxor mm7, mm7
punpcklbw mm0, mm2
psraw mm0, 0xb
punpckhbw mm7, mm2
psraw mm7, 0xb
packsswb mm0, mm7
psubsb mm3, mm0
paddsb mm6, mm5
pandn mm4, mm1
pxor mm0, mm0
pxor mm1, mm1
pxor mm2, mm2
punpcklbw mm1, mm4
punpckhbw mm2, mm4
pmulhw mm1, qword [0x14d44a0]
pmulhw mm2, qword [0x14d44a0]
paddw mm1, qword [0x14d44d0]
paddw mm2, qword [0x14d44d0]
psraw mm1, 7
psraw mm2, 7
packsswb mm1, mm2
psubsb mm3, mm1
paddsb mm6, mm1
pxor mm3, qword [0x14d4450]
pxor mm6, qword [0x14d4450]
movq qword [esi + eax], mm6
movq qword [esi], mm3
pxor mm1, mm1
pxor mm2, mm2
punpcklbw mm1, mm4
punpckhbw mm2, mm4
pmulhw mm1, qword [0x14d44b0]
pmulhw mm2, qword [0x14d44b0]
paddw mm1, qword [0x14d44d0]
paddw mm2, qword [0x14d44d0]
psraw mm1, 7
psraw mm2, 7
packsswb mm1, mm2
movq mm3, qword [edi]
movq mm6, qword [esi + eax*2]
pxor mm3, qword [0x14d4450]
pxor mm6, qword [0x14d4450]
paddsb mm6, mm1
psubsb mm3, mm1
pxor mm6, qword [0x14d4450]
pxor mm3, qword [0x14d4450]
movq qword [edi], mm3
movq qword [esi + eax*2], mm6
pxor mm1, mm1
pxor mm2, mm2
punpcklbw mm1, mm4
punpckhbw mm2, mm4
pmulhw mm1, qword [0x14d44c0]
pmulhw mm2, qword [0x14d44c0]
paddw mm1, qword [0x14d44d0]
paddw mm2, qword [0x14d44d0]
psraw mm1, 7
psraw mm2, 7
packsswb mm1, mm2
movq mm6, qword [edi + eax*4]
neg eax
movq mm3, qword [edi + eax]
pxor mm6, qword [0x14d4450]
pxor mm3, qword [0x14d4450]
paddsb mm6, mm1
psubsb mm3, mm1
pxor mm6, qword [0x14d4450]
pxor mm3, qword [0x14d4450]
movq qword [edi + eax], mm3
neg eax
movq qword [edi + eax*4], mm6
neg eax
add esi, 8
dec ecx
jne 0xd5346c
add esp, 0x20
pop esp
pop edi
pop esi
pop ebp
ret