Function at 0x4f0d60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x160
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
mov edi, esi
or edi, eax
mov ebx, dword [ebp + 8]
mov dword [esp + 0xc], ecx
je 0x4f0eb3
xor ecx, ecx
movd xmm0, esi
neg esi
mov edi, 0
sbb edi, eax
movd xmm1, edi
movd xmm2, esi
punpckldq xmm2, xmm1
movd xmm1, eax
punpckldq xmm0, xmm1
punpcklqdq xmm0, xmm2
lea eax, [esp + 0x20]
movdqa xmm1, xmmword [0x686e60]
paddq xmm1, xmm0
movdqa xmmword [eax], xmm1
movdqa xmm1, xmmword [0x686e70]
paddq xmm1, xmm0
movdqa xmmword [eax + 0x10], xmm1
movdqa xmm1, xmmword [0x686e80]
paddq xmm1, xmm0
movdqa xmmword [eax + 0x20], xmm1
movdqa xmm1, xmmword [0x686e90]
paddq xmm1, xmm0
movdqa xmmword [eax + 0x30], xmm1
movdqa xmm1, xmmword [0x686ea0]
paddq xmm1, xmm0
movdqa xmmword [eax + 0x40], xmm1
movdqa xmm1, xmmword [0x686eb0]
paddq xmm1, xmm0
movdqa xmmword [eax + 0x50], xmm1
movdqa xmm1, xmmword [0x686ec0]
paddq xmm1, xmm0
movdqa xmmword [eax + 0x60], xmm1
movdqa xmm1, xmmword [0x686ed0]
paddq xmm1, xmm0
movdqa xmmword [eax + 0x70], xmm1
movdqa xmm1, xmmword [0x686ee0]
paddq xmm1, xmm0
movdqa xmmword [eax + 0x80], xmm1
movdqa xmm1, xmmword [0x686ef0]
paddq xmm1, xmm0
movdqa xmmword [eax + 0x90], xmm1
movdqa xmm1, xmmword [0x686f00]
paddq xmm1, xmm0
paddq xmm0, xmmword [0x686f10]
movdqa xmmword [eax + 0xa0], xmm1
movdqa xmmword [eax + 0xb0], xmm0
lea eax, [ebx - 1]
cmp eax, 0x400
jae 0x4f0ee6
movdqa xmm3, xmmword [0x686f20]
movdqa xmm2, xmmword [0x686f30]
movdqa xmm1, xmmword [0x686f40]
movdqa xmm0, xmmword [0x686f50]
jmp 0x4f10dc
lea eax, [ebx - 1]
cmp eax, 0x400
jae 0x4f1305
movdqa xmm3, xmmword [0x686f20]
movdqa xmm2, xmmword [0x686f30]
movdqa xmm1, xmmword [0x686f40]
movdqa xmm0, xmmword [0x686f50]
jmp 0x4f14bb
mov edi, eax
shr edi, 0xa
movaps xmm0, xmmword [esp + 0xa0]
movaps xmmword [esp + 0x10], xmm0
movaps xmm0, xmmword [esp + 0xb0]
movaps xmmword [esp + 0x100], xmm0
movaps xmm0, xmmword [esp + 0xc0]
movaps xmmword [esp + 0xf0], xmm0
movdqa xmm3, xmmword [0x686f20]
movdqa xmm2, xmmword [0x686f30]
movdqa xmm1, xmmword [0x686f40]
movdqa xmm0, xmmword [0x686f50]
movaps xmm4, xmmword [esp + 0xd0]
movaps xmmword [esp + 0xe0], xmm4
mov ebx, edx
movdqa xmm4, xmmword [0x686f60]
nop word cs:[eax + eax]
nop dword [eax]
xor esi, esi
nop word cs:[eax + eax]
nop dword [eax]
prefetcht0 byte [ebx + esi*8 + 0x140]
movdqu xmm5, xmmword [ebx + esi*8]
movdqu xmm6, xmmword [esp + esi + 0x20]
pxor xmm6, xmm5
pshufd xmm7, xmm6, 0xf5
pmuludq xmm7, xmm6
movdqu xmm6, xmmword [ebx + esi*8 + 0x10]
pshufd xmm5, xmm5, 0x4e
paddq xmm3, xmm5
movdqu xmm5, xmmword [esp + esi + 0x30]
paddq xmm3, xmm7
pxor xmm5, xmm6
pshufd xmm7, xmm5, 0xf5
pmuludq xmm7, xmm5
pshufd xmm5, xmm6, 0x4e
paddq xmm2, xmm5
paddq xmm2, xmm7
movdqu xmm5, xmmword [ebx + esi*8 + 0x20]
movdqu xmm6, xmmword [esp + esi + 0x40]
pxor xmm6, xmm5
pshufd xmm7, xmm6, 0xf5
pmuludq xmm7, xmm6
pshufd xmm5, xmm5, 0x4e
paddq xmm1, xmm5
paddq xmm1, xmm7
movdqu xmm5, xmmword [ebx + esi*8 + 0x30]
movdqu xmm6, xmmword [esp + esi + 0x50]
pxor xmm6, xmm5
pshufd xmm7, xmm6, 0xf5
pmuludq xmm7, xmm6
pshufd xmm5, xmm5, 0x4e
paddq xmm0, xmm5
paddq xmm0, xmm7
add esi, 8
cmp esi, 0x80
jne 0x4f0f70
movdqa xmm5, xmm3
psrlq xmm5, 0x2f
pxor xmm3, xmmword [esp + 0x10]
pxor xmm5, xmm3
pmuludq xmm5, xmm4
pshufd xmm3, xmm3, 0xf5
pmuludq xmm3, xmm4
psllq xmm3, 0x20
paddq xmm3, xmm5
movdqa xmm5, xmm2
psrlq xmm5, 0x2f
pxor xmm2, xmmword [esp + 0x100]
pxor xmm5, xmm2
pmuludq xmm5, xmm4
pshufd xmm2, xmm2, 0xf5
pmuludq xmm2, xmm4
psllq xmm2, 0x20
paddq xmm2, xmm5
movdqa xmm5, xmm1
psrlq xmm5, 0x2f
pxor xmm1, xmmword [esp + 0xf0]
pxor xmm5, xmm1
pmuludq xmm5, xmm4
pshufd xmm1, xmm1, 0xf5
pmuludq xmm1, xmm4
psllq xmm1, 0x20
paddq xmm1, xmm5
movdqa xmm5, xmm0
psrlq xmm5, 0x2f
pxor xmm0, xmmword [esp + 0xe0]
pxor xmm5, xmm0
pmuludq xmm5, xmm4
pshufd xmm0, xmm0, 0xf5
pmuludq xmm0, xmm4
psllq xmm0, 0x20
paddq xmm0, xmm5
add ecx, 1
add ebx, 0x400
cmp ecx, edi
jne 0x4f0f60
mov ecx, eax
and ecx, 0x3ff
cmp ecx, 0x40
jae 0x4f1101
movdqa xmm4, xmm0
movdqa xmm5, xmm1
movdqa xmm6, xmm2
movdqa xmm7, xmm3
mov ebx, dword [ebp + 8]
jmp 0x4f11e4
and eax, 0xfffffc00
shr ecx, 6
add eax, edx
shl ecx, 3
xor edi, edi
mov ebx, dword [ebp + 8]
nop word cs:[eax + eax]
nop dword [eax]
prefetcht0 byte [eax + edi*8 + 0x140]
movdqu xmm5, xmmword [eax + edi*8]
movups xmm4, xmmword [eax + edi*8 + 0x10]
movaps xmmword [esp + 0x10], xmm4
movdqu xmm6, xmmword [esp + edi + 0x20]
pxor xmm6, xmm5
pshufd xmm4, xmm6, 0xf5
pmuludq xmm4, xmm6
movdqu xmm6, xmmword [esp + edi + 0x30]
pshufd xmm7, xmm5, 0x4e
paddq xmm7, xmm3
paddq xmm7, xmm4
movdqa xmm4, xmmword [esp + 0x10]
pxor xmm6, xmm4
pshufd xmm3, xmm6, 0xf5
pmuludq xmm3, xmm6
pshufd xmm6, xmm4, 0x4e
paddq xmm6, xmm2
paddq xmm6, xmm3
movdqu xmm2, xmmword [eax + edi*8 + 0x20]
movdqu xmm3, xmmword [esp + edi + 0x40]
pxor xmm3, xmm2
pshufd xmm4, xmm3, 0xf5
pmuludq xmm4, xmm3
pshufd xmm5, xmm2, 0x4e
paddq xmm5, xmm1
paddq xmm5, xmm4
movdqu xmm1, xmmword [eax + edi*8 + 0x30]
movdqu xmm2, xmmword [esp + edi + 0x50]
pxor xmm2, xmm1
pshufd xmm3, xmm2, 0xf5
pmuludq xmm3, xmm2
pshufd xmm4, xmm1, 0x4e
paddq xmm4, xmm0
paddq xmm4, xmm3
add edi, 8
movdqa xmm0, xmm4
movdqa xmm1, xmm5
movdqa xmm2, xmm6
movdqa xmm3, xmm7
cmp ecx, edi
jne 0x4f1120
movdqu xmm1, xmmword [edx + ebx - 0x40]
movdqu xmm2, xmmword [esp + 0x99]
movdqu xmm0, xmmword [esp + 0xa9]
pxor xmm2, xmm1
pshufd xmm3, xmm2, 0xf5
pmuludq xmm3, xmm2
pshufd xmm1, xmm1, 0x4e
paddq xmm1, xmm3
paddq xmm1, xmm7
movdqa xmmword [esp + 0x110], xmm1
movdqu xmm1, xmmword [edx + ebx - 0x30]
pxor xmm0, xmm1
pshufd xmm2, xmm0, 0xf5
pmuludq xmm2, xmm0
pshufd xmm0, xmm1, 0x4e
paddq xmm0, xmm2
paddq xmm0, xmm6
movdqa xmmword [esp + 0x120], xmm0
movdqu xmm0, xmmword [edx + ebx - 0x20]
movdqu xmm1, xmmword [esp + 0xb9]
pxor xmm1, xmm0
pshufd xmm2, xmm1, 0xf5
pmuludq xmm2, xmm1
pshufd xmm0, xmm0, 0x4e
paddq xmm0, xmm2
paddq xmm0, xmm5
movdqa xmmword [esp + 0x130], xmm0
movdqu xmm0, xmmword [edx + ebx - 0x10]
movdqu xmm1, xmmword [esp + 0xc9]
pxor xmm1, xmm0
pshufd xmm2, xmm1, 0xf5
pmuludq xmm2, xmm1
pshufd xmm0, xmm0, 0x4e
paddq xmm0, xmm2
paddq xmm0, xmm4
mov ecx, 0x85ebca87
mov eax, ebx
mul ecx
movdqa xmmword [esp + 0x140], xmm0
lea edi, [esp + 0x2b]
imul esi, ebx, 0x9e3779b1
add esi, edx
lea ecx, [esp + 0x110]
mov edx, edi
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 + 0x110]
lea edx, [esp + 0x95]
jmp 0x4f16bf
mov ecx, eax
shr ecx, 0xa
xor edi, edi
movdqa xmm3, xmmword [0x686f20]
movdqa xmm2, xmmword [0x686f30]
movdqa xmm1, xmmword [0x686f40]
movdqa xmm0, xmmword [0x686f50]
mov ebx, edx
nop
xor esi, esi
nop word cs:[eax + eax]
nop dword [eax]
prefetcht0 byte [ebx + esi*8 + 0x140]
movdqu xmm7, xmmword [esi + 0x687580]
movdqu xmm4, xmmword [ebx + esi*8]
movdqu xmm6, xmmword [ebx + 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 [ebx + 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 [ebx + 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 0x4f1340
movdqa xmm4, xmm3
psrlq xmm4, 0x2f
pxor xmm4, xmm3
pxor xmm4, xmmword [0x686ee0]
pshufd xmm3, xmm4, 0xf5
movdqa xmm5, xmmword [0x686f60]
pmuludq xmm4, xmm5
pmuludq xmm3, xmm5
psllq xmm3, 0x20
paddq xmm3, xmm4
movdqa xmm4, xmm2
psrlq xmm4, 0x2f
pxor xmm4, xmm2
pxor xmm4, xmmword [0x686ef0]
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 [0x686f00]
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 [0x686f10]
pshufd xmm0, xmm4, 0xf5
pmuludq xmm4, xmm5
pmuludq xmm0, xmm5
psllq xmm0, 0x20
paddq xmm0, xmm4
add edi, 1
add ebx, 0x400
cmp edi, ecx
jne 0x4f1330
mov ecx, eax
and ecx, 0x3ff
cmp ecx, 0x40
mov ebx, dword [ebp + 8]
jae 0x4f14e0
movdqa xmm4, xmm0
movdqa xmm5, xmm1
movdqa xmm6, xmm2
movdqa xmm7, xmm3
jmp 0x4f15bc
and eax, 0xfffffc00
shr ecx, 6
add eax, edx
shl ecx, 3
xor edi, edi
nop
prefetcht0 byte [eax + edi*8 + 0x140]
movdqu xmm5, xmmword [edi + 0x687580]
movdqu xmm6, xmmword [eax + edi*8]
movups xmm4, xmmword [eax + edi*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 [edi + 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 + edi*8 + 0x20]
movdqu xmm3, xmmword [edi + 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 + edi*8 + 0x30]
movdqu xmm2, xmmword [edi + 0x6875b0]
pxor xmm2, xmm1
pshufd xmm3, xmm2, 0xf5
pmuludq xmm3, xmm2
pshufd xmm4, xmm1, 0x4e
paddq xmm4, xmm0
paddq xmm4, xmm3
add edi, 8
movdqa xmm0, xmm4
movdqa xmm1, xmm5
movdqa xmm2, xmm6
movdqa xmm3, xmm7
cmp ecx, edi
jne 0x4f14f0
movdqu xmm0, xmmword [edx + ebx - 0x40]
movdqa xmm1, xmmword [0x686f70]
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 [edx + ebx - 0x30]
movdqa xmm1, xmmword [0x686f80]
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 [edx + ebx - 0x20]
movdqa xmm1, xmmword [0x686f90]
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 [edx + ebx - 0x10]
movdqa xmm1, xmmword [0x686fa0]
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