Function at 0x4eee80
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x70
mov edi, edx
mov dword [esp + 0xc], ecx
mov eax, dword [ebp + 8]
add eax, 0xffffffff
cmp eax, 0x400
jae 0x4eeec4
movdqa xmm3, xmmword [0x686b20]
movdqa xmm2, xmmword [0x686b30]
movdqa xmm1, xmmword [0x686b40]
movdqa xmm0, xmmword [0x686b50]
jmp 0x4ef07b
mov ecx, eax
shr ecx, 0xa
xor ebx, ebx
movdqa xmm3, xmmword [0x686b20]
movdqa xmm2, xmmword [0x686b30]
movdqa xmm1, xmmword [0x686b40]
movdqa xmm0, xmmword [0x686b50]
mov edx, edi
nop dword [eax]
xor esi, esi
nop word cs:[eax + eax]
nop dword [eax]
prefetcht0 byte [edx + esi*8 + 0x140]
movdqu xmm7, xmmword [esi + 0x687580]
movdqu xmm4, xmmword [edx + esi*8]
movdqu xmm6, xmmword [edx + esi*8 + 0x10]
pxor xmm7, xmm4
pshufd xmm5, xmm7, 0xf5
pmuludq xmm5, xmm7
pshufd xmm4, xmm4, 0x4e
paddq xmm3, xmm4
paddq xmm3, xmm5
movdqu xmm4, xmmword [esi + 0x687590]
pxor xmm4, xmm6
pshufd xmm5, xmm4, 0xf5
pmuludq xmm5, xmm4
pshufd xmm4, xmm6, 0x4e
paddq xmm2, xmm4
paddq xmm2, xmm5
movdqu xmm4, xmmword [edx + esi*8 + 0x20]
movdqu xmm5, xmmword [esi + 0x6875a0]
pxor xmm5, xmm4
pshufd xmm6, xmm5, 0xf5
pmuludq xmm6, xmm5
pshufd xmm4, xmm4, 0x4e
paddq xmm1, xmm4
paddq xmm1, xmm6
movdqu xmm4, xmmword [edx + esi*8 + 0x30]
movdqu xmm5, xmmword [esi + 0x6875b0]
pxor xmm5, xmm4
pshufd xmm6, xmm5, 0xf5
pmuludq xmm6, xmm5
pshufd xmm4, xmm4, 0x4e
paddq xmm0, xmm4
paddq xmm0, xmm6
add esi, 8
cmp esi, 0x80
jne 0x4eef00
movdqa xmm4, xmm3
psrlq xmm4, 0x2f
pxor xmm4, xmm3
pxor xmm4, xmmword [0x686b60]
pshufd xmm3, xmm4, 0xf5
movdqa xmm5, xmmword [0x686b70]
pmuludq xmm4, xmm5
pmuludq xmm3, xmm5
psllq xmm3, 0x20
paddq xmm3, xmm4
movdqa xmm4, xmm2
psrlq xmm4, 0x2f
pxor xmm4, xmm2
pxor xmm4, xmmword [0x686b80]
pshufd xmm2, xmm4, 0xf5
pmuludq xmm4, xmm5
pmuludq xmm2, xmm5
psllq xmm2, 0x20
paddq xmm2, xmm4
movdqa xmm4, xmm1
psrlq xmm4, 0x2f
pxor xmm4, xmm1
pxor xmm4, xmmword [0x686b90]
pshufd xmm1, xmm4, 0xf5
pmuludq xmm4, xmm5
pmuludq xmm1, xmm5
psllq xmm1, 0x20
paddq xmm1, xmm4
movdqa xmm4, xmm0
psrlq xmm4, 0x2f
pxor xmm4, xmm0
pxor xmm4, xmmword [0x686ba0]
pshufd xmm0, xmm4, 0xf5
pmuludq xmm4, xmm5
pmuludq xmm0, xmm5
psllq xmm0, 0x20
paddq xmm0, xmm4
add ebx, 1
add edx, 0x400
cmp ebx, ecx
jne 0x4eeef0
mov ecx, eax
and ecx, 0x3ff
cmp ecx, 0x40
jae 0x4ef09d
movdqa xmm4, xmm0
movdqa xmm5, xmm1
movdqa xmm6, xmm2
movdqa xmm7, xmm3
jmp 0x4ef17c
and eax, 0xfffffc00
shr ecx, 6
add eax, edi
shl ecx, 3
xor edx, edx
nop dword [eax]
prefetcht0 byte [eax + edx*8 + 0x140]
movdqu xmm5, xmmword [edx + 0x687580]
movdqu xmm6, xmmword [eax + edx*8]
movups xmm4, xmmword [eax + edx*8 + 0x10]
movaps xmmword [esp + 0x10], xmm4
pxor xmm5, xmm6
pshufd xmm4, xmm5, 0xf5
pmuludq xmm4, xmm5
pshufd xmm7, xmm6, 0x4e
paddq xmm7, xmm3
paddq xmm7, xmm4
movdqu xmm3, xmmword [edx + 0x687590]
movdqa xmm5, xmmword [esp + 0x10]
pxor xmm3, xmm5
pshufd xmm4, xmm3, 0xf5
pmuludq xmm4, xmm3
pshufd xmm6, xmm5, 0x4e
paddq xmm6, xmm2
paddq xmm6, xmm4
movdqu xmm2, xmmword [eax + edx*8 + 0x20]
movdqu xmm3, xmmword [edx + 0x6875a0]
pxor xmm3, xmm2
pshufd xmm4, xmm3, 0xf5
pmuludq xmm4, xmm3
pshufd xmm5, xmm2, 0x4e
paddq xmm5, xmm1
paddq xmm5, xmm4
movdqu xmm1, xmmword [eax + edx*8 + 0x30]
movdqu xmm2, xmmword [edx + 0x6875b0]
pxor xmm2, xmm1
pshufd xmm3, xmm2, 0xf5
pmuludq xmm3, xmm2
pshufd xmm4, xmm1, 0x4e
paddq xmm4, xmm0
paddq xmm4, xmm3
add edx, 8
movdqa xmm0, xmm4
movdqa xmm1, xmm5
movdqa xmm2, xmm6
movdqa xmm3, xmm7
cmp ecx, edx
jne 0x4ef0b0
mov ebx, dword [ebp + 8]
movdqu xmm0, xmmword [edi + ebx - 0x40]
movdqa xmm1, xmmword [0x686bb0]
pxor xmm1, xmm0
pshufd xmm2, xmm1, 0xf5
pmuludq xmm2, xmm1
pshufd xmm0, xmm0, 0x4e
paddq xmm0, xmm2
paddq xmm0, xmm7
movdqa xmmword [esp + 0x20], xmm0
movdqu xmm0, xmmword [edi + ebx - 0x30]
movdqa xmm1, xmmword [0x686bc0]
pxor xmm1, xmm0
pshufd xmm2, xmm1, 0xf5
pmuludq xmm2, xmm1
pshufd xmm0, xmm0, 0x4e
paddq xmm0, xmm2
paddq xmm0, xmm6
movdqa xmmword [esp + 0x30], xmm0
movdqu xmm0, xmmword [edi + ebx - 0x20]
movdqa xmm1, xmmword [0x686bd0]
pxor xmm1, xmm0
pshufd xmm2, xmm1, 0xf5
pmuludq xmm2, xmm1
pshufd xmm0, xmm0, 0x4e
paddq xmm0, xmm2
paddq xmm0, xmm5
movdqa xmmword [esp + 0x40], xmm0
movdqu xmm0, xmmword [edi + ebx - 0x10]
movdqa xmm1, xmmword [0x686be0]
pxor xmm1, xmm0
pshufd xmm2, xmm1, 0xf5
pmuludq xmm2, xmm1
pshufd xmm0, xmm0, 0x4e
paddq xmm0, xmm2
mov ecx, 0x85ebca87
mov eax, ebx
mul ecx
paddq xmm0, xmm4
movdqa xmmword [esp + 0x50], xmm0
imul esi, ebx, 0x9e3779b1
add esi, edx
lea ecx, [esp + 0x20]
mov edx, 0x68758b
push esi
push eax
call fcn.004ee340
add esp, 8
mov edi, dword [esp + 0xc]
mov dword [edi + 4], edx
mov dword [edi], eax
mov ecx, 0x27d4eb4f
mov eax, ebx
mul ecx
imul esi, ebx, 0xc2b2ae3d
add esi, edx
not eax
not esi
lea ecx, [esp + 0x20]
mov edx, 0x6875f5
push esi
push eax
call fcn.004ee340
add esp, 8
mov dword [edi + 0xc], edx
mov dword [edi + 8], eax
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret