Function at 0x100ba860
Capabilities:
Encode data using xor

Disassembly:
push esi
movd xmm0, dword [esp + 0xc]
pshufd xmm2, xmm0, 0
pcmpeqd xmm0, xmm0
mov ecx, dword [esp + 8]
pxor xmm0, xmm2
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
movdqa xmm1, xmmword [0x102e11b0]
cmp dword [esp + 0x14], 0xb
jl 0x100bab4d
test byte [esp + 0x10], 3
jne 0x100baa32
mov esi, edx
and esi, 0xf
je 0x100ba92d
neg esi
test esi, 8
je 0x100ba8ed
movq xmm3, qword [ecx]
movdqa xmm5, xmm2
paddd xmm5, xmm3
pcmpgtd xmm3, xmm0
movdqa xmm4, xmm5
add ecx, 8
psrad xmm4, 0x1f
add eax, 0xfffffffe
pxor xmm4, xmm3
pxor xmm3, xmm1
pand xmm5, xmm4
pandn xmm4, xmm3
por xmm5, xmm4
movq qword [edx], xmm5
add edx, 8
test esi, 4
je 0x100ba92d
movd xmm3, dword [ecx]
movdqa xmm5, xmm2
paddd xmm5, xmm3
pcmpgtd xmm3, xmm0
movdqa xmm4, xmm5
add ecx, 4
psrad xmm4, 0x1f
dec eax
pxor xmm4, xmm3
pxor xmm3, xmm1
pand xmm5, xmm4
pandn xmm4, xmm3
por xmm5, xmm4
movd dword [edx], xmm5
add edx, 4
mov esi, eax
and eax, 7
sar esi, 3
test cl, 0xf
jne 0x100ba9c0
nop
movdqa xmm6, xmmword [ecx]
movdqa xmm5, xmm2
paddd xmm5, xmm6
movdqa xmm4, xmm2
movdqa xmm7, xmm5
pcmpgtd xmm6, xmm0
movdqa xmm3, xmmword [ecx + 0x10]
psrad xmm7, 0x1f
paddd xmm4, xmm3
pxor xmm7, xmm6
pxor xmm6, xmm1
pand xmm5, xmm7
pandn xmm7, xmm6
movdqa xmm6, xmm4
pcmpgtd xmm3, xmm0
psrad xmm6, 0x1f
pxor xmm6, xmm3
pxor xmm3, xmm1
pand xmm4, xmm6
pandn xmm6, xmm3
por xmm5, xmm7
por xmm4, xmm6
movdqa xmmword [edx], xmm5
lea ecx, [ecx + 0x20]
movdqa xmmword [edx + 0x10], xmm4
add edx, 0x20
dec esi
jne 0x100ba940
jmp 0x100bab4d
movdqu xmm6, xmmword [ecx]
movdqu xmm3, xmmword [ecx + 0x10]
movdqa xmm5, xmm2
movdqa xmm4, xmm2
paddd xmm5, xmm6
pcmpgtd xmm6, xmm0
movdqa xmm7, xmm5
paddd xmm4, xmm3
psrad xmm7, 0x1f
pcmpgtd xmm3, xmm0
pxor xmm7, xmm6
pxor xmm6, xmm1
pand xmm5, xmm7
pandn xmm7, xmm6
movdqa xmm6, xmm4
por xmm5, xmm7
psrad xmm6, 0x1f
add ecx, 0x20
pxor xmm6, xmm3
pxor xmm3, xmm1
pand xmm4, xmm6
pandn xmm6, xmm3
por xmm4, xmm6
movdqa xmmword [edx], xmm5
movdqa xmmword [edx + 0x10], xmm4
add edx, 0x20
dec esi
jne 0x100ba9c0
jmp 0x100bab4d
mov esi, eax
and eax, 7
sar esi, 3
test byte [esp + 8], 0xf
jne 0x100baae0
nop dword [eax + eax]
nop dword [eax]
nop dword [eax + eax]
nop dword [eax]
movdqa xmm6, xmmword [ecx]
movdqa xmm5, xmm2
paddd xmm5, xmm6
movdqa xmm4, xmm2
movdqa xmm7, xmm5
pcmpgtd xmm6, xmm0
movdqa xmm3, xmmword [ecx + 0x10]
psrad xmm7, 0x1f
paddd xmm4, xmm3
pxor xmm7, xmm6
pxor xmm6, xmm1
pand xmm5, xmm7
pandn xmm7, xmm6
movdqa xmm6, xmm4
pcmpgtd xmm3, xmm0
psrad xmm6, 0x1f
pxor xmm6, xmm3
pxor xmm3, xmm1
pand xmm4, xmm6
pandn xmm6, xmm3
por xmm5, xmm7
por xmm4, xmm6
movdqu xmmword [edx], xmm5
movdqu xmmword [edx + 0x10], xmm4
lea ecx, [ecx + 0x20]
add edx, 0x20
dec esi
jne 0x100baa60
jmp 0x100bab4d
movdqu xmm6, xmmword [ecx]
movdqu xmm3, xmmword [ecx + 0x10]
movdqa xmm5, xmm2
movdqa xmm4, xmm2
paddd xmm5, xmm6
pcmpgtd xmm6, xmm0
movdqa xmm7, xmm5
paddd xmm4, xmm3
psrad xmm7, 0x1f
pcmpgtd xmm3, xmm0
pxor xmm7, xmm6
pxor xmm6, xmm1
pand xmm5, xmm7
pandn xmm7, xmm6
movdqa xmm6, xmm4
por xmm5, xmm7
psrad xmm6, 0x1f
add ecx, 0x20
pxor xmm6, xmm3
pxor xmm3, xmm1
pand xmm4, xmm6
pandn xmm6, xmm3
por xmm4, xmm6
movdqu xmmword [edx], xmm5
movdqu xmmword [edx + 0x10], xmm4
add edx, 0x20
dec esi
jne 0x100baae0
cmp eax, 4
jl 0x100bab9f
nop dword [eax]
nop dword [eax]
movdqu xmm3, xmmword [ecx]
movdqa xmm5, xmm2
add eax, 0xfffffffc
paddd xmm5, xmm3
pcmpgtd xmm3, xmm0
movdqa xmm4, xmm5
add ecx, 0x10
psrad xmm4, 0x1f
pxor xmm4, xmm3
pxor xmm3, xmm1
pand xmm5, xmm4
pandn xmm4, xmm3
por xmm5, xmm4
movdqu xmmword [edx], xmm5
add edx, 0x10
cmp eax, 4
jge 0x100bab60
test al, 2
je 0x100babda
movq xmm3, qword [ecx]
movdqa xmm5, xmm2
paddd xmm5, xmm3
pcmpgtd xmm3, xmm0
movdqa xmm4, xmm5
add ecx, 8
psrad xmm4, 0x1f
pxor xmm4, xmm3
pxor xmm3, xmm1
pand xmm5, xmm4
pandn xmm4, xmm3
por xmm5, xmm4
movq qword [edx], xmm5
add edx, 8
test al, 1
je 0x100bac0b
movd xmm3, dword [ecx]
paddd xmm2, xmm3
pcmpgtd xmm3, xmm0
movdqa xmm0, xmm2
psrad xmm0, 0x1f
pxor xmm0, xmm3
pxor xmm3, xmm1
pand xmm2, xmm0
pandn xmm0, xmm3
por xmm2, xmm0
movd dword [edx], xmm2
pop esi
ret