Function at 0x1002ad50
Capabilities:
Encode data using xor

Disassembly:
push edi
push esi
push ebx
push ebp
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
lea ebp, [0x1002ac70]
movaps xmm7, xmmword [ebp + 0xd0]
cmp ecx, 4
jl 0x1002b020
mov eax, esi
or eax, ebx
or eax, edi
and eax, 0xf
jne 0x1002aee0
lea esp, [esp]
movaps xmm0, xmmword [esi]
movaps xmm1, xmm0
pand xmm1, xmm7
movaps xmm2, xmm0
mulps xmm0, xmmword [ebp + 0x20]
cvttps2dq xmm4, xmm0
cvtps2dq xmm0, xmm0
cvtdq2ps xmm4, xmm4
movaps xmm6, xmm0
pslld xmm6, 0x1f
cvtdq2ps xmm0, xmm0
pand xmm4, xmmword [ebp + 0xc0]
addps xmm4, xmmword [ebp]
por xmm4, xmm1
movaps xmm5, xmm2
movaps xmm3, xmmword [ebp + 0x70]
mulps xmm3, xmm0
subps xmm2, xmm3
movaps xmm3, xmmword [ebp + 0x80]
mulps xmm3, xmm0
subps xmm2, xmm3
movaps xmm3, xmmword [ebp + 0x90]
mulps xmm3, xmm0
subps xmm2, xmm3
movaps xmm3, xmmword [ebp + 0xa0]
mulps xmm3, xmm0
subps xmm2, xmm3
mulps xmm0, xmmword [ebp + 0xb0]
subps xmm2, xmm0
movaps xmm0, xmmword [ebp + 0x70]
mulps xmm0, xmm4
subps xmm5, xmm0
movaps xmm0, xmmword [ebp + 0x80]
mulps xmm0, xmm4
subps xmm5, xmm0
movaps xmm0, xmmword [ebp + 0x90]
mulps xmm0, xmm4
subps xmm5, xmm0
movaps xmm0, xmmword [ebp + 0xa0]
mulps xmm0, xmm4
subps xmm5, xmm0
mulps xmm4, xmmword [ebp + 0xb0]
subps xmm5, xmm4
pand xmm5, xmmword [ebp + 0xc0]
movaps xmm3, xmm2
movaps xmm1, xmm5
mulps xmm2, xmm2
mulps xmm5, xmm5
movaps xmm4, xmmword [ebp + 0x30]
movaps xmm0, xmmword [ebp + 0x30]
mulps xmm4, xmm5
mulps xmm0, xmm2
addps xmm4, xmmword [ebp + 0x40]
addps xmm0, xmmword [ebp + 0x40]
mulps xmm4, xmm5
mulps xmm0, xmm2
addps xmm4, xmmword [ebp + 0x50]
addps xmm0, xmmword [ebp + 0x50]
mulps xmm4, xmm5
mulps xmm0, xmm2
addps xmm4, xmmword [ebp + 0x60]
addps xmm0, xmmword [ebp + 0x60]
mulps xmm5, xmm1
mulps xmm2, xmm3
mulps xmm4, xmm5
mulps xmm0, xmm2
addps xmm4, xmm1
movaps xmm1, xmmword [ebx]
addps xmm0, xmm3
pxor xmm4, xmm6
pxor xmm0, xmm6
mulps xmm4, xmm1
mulps xmm0, xmm1
add ebx, 0x10
add esi, 0x10
movaps xmm1, xmm4
unpcklps xmm1, xmm0
unpckhps xmm4, xmm0
movaps xmmword [edi], xmm1
movaps xmmword [edi + 0x10], xmm4
sub ecx, 4
add edi, 0x20
cmp ecx, 4
jge 0x1002ad90
jmp 0x1002b020
movups xmm0, xmmword [esi]
movaps xmm1, xmm0
pand xmm1, xmm7
movaps xmm2, xmm0
mulps xmm0, xmmword [ebp + 0x20]
cvttps2dq xmm4, xmm0
cvtps2dq xmm0, xmm0
cvtdq2ps xmm4, xmm4
movaps xmm6, xmm0
pslld xmm6, 0x1f
cvtdq2ps xmm0, xmm0
pand xmm4, xmmword [ebp + 0xc0]
addps xmm4, xmmword [ebp]
por xmm4, xmm1
movaps xmm5, xmm2
movaps xmm3, xmmword [ebp + 0x70]
mulps xmm3, xmm0
subps xmm2, xmm3
movaps xmm3, xmmword [ebp + 0x80]
mulps xmm3, xmm0
subps xmm2, xmm3
movaps xmm3, xmmword [ebp + 0x90]
mulps xmm3, xmm0
subps xmm2, xmm3
movaps xmm3, xmmword [ebp + 0xa0]
mulps xmm3, xmm0
subps xmm2, xmm3
mulps xmm0, xmmword [ebp + 0xb0]
subps xmm2, xmm0
movaps xmm0, xmmword [ebp + 0x70]
mulps xmm0, xmm4
subps xmm5, xmm0
movaps xmm0, xmmword [ebp + 0x80]
mulps xmm0, xmm4
subps xmm5, xmm0
movaps xmm0, xmmword [ebp + 0x90]
mulps xmm0, xmm4
subps xmm5, xmm0
movaps xmm0, xmmword [ebp + 0xa0]
mulps xmm0, xmm4
subps xmm5, xmm0
mulps xmm4, xmmword [ebp + 0xb0]
subps xmm5, xmm4
pand xmm5, xmmword [ebp + 0xc0]
movaps xmm3, xmm2
movaps xmm1, xmm5
mulps xmm2, xmm2
mulps xmm5, xmm5
movaps xmm4, xmmword [ebp + 0x30]
movaps xmm0, xmmword [ebp + 0x30]
mulps xmm4, xmm5
mulps xmm0, xmm2
addps xmm4, xmmword [ebp + 0x40]
addps xmm0, xmmword [ebp + 0x40]
mulps xmm4, xmm5
mulps xmm0, xmm2
addps xmm4, xmmword [ebp + 0x50]
addps xmm0, xmmword [ebp + 0x50]
mulps xmm4, xmm5
mulps xmm0, xmm2
addps xmm4, xmmword [ebp + 0x60]
addps xmm0, xmmword [ebp + 0x60]
mulps xmm5, xmm1
mulps xmm2, xmm3
mulps xmm4, xmm5
mulps xmm0, xmm2
addps xmm4, xmm1
movups xmm1, xmmword [ebx]
addps xmm0, xmm3
pxor xmm4, xmm6
pxor xmm0, xmm6
mulps xmm4, xmm1
mulps xmm0, xmm1
add ebx, 0x10
add esi, 0x10
movaps xmm1, xmm4
unpcklps xmm1, xmm0
unpckhps xmm4, xmm0
movups xmmword [edi], xmm1
movups xmmword [edi + 0x10], xmm4
sub ecx, 4
add edi, 0x20
cmp ecx, 4
jge 0x1002aee0
mov edi, edi
or ecx, ecx
je 0x1002b1b5
cmp ecx, 3
jne 0x1002b03e
movlps xmm0, qword [esi]
movss xmm3, dword [esi + 8]
shufps xmm3, xmm3, 0
movlhps xmm0, xmm3
jmp 0x1002b053
cmp ecx, 2
jne 0x1002b04b
movlps xmm0, qword [esi]
movlhps xmm0, xmm0
jmp 0x1002b053
movss xmm0, dword [esi]
shufps xmm0, xmm0, 0
movaps xmm1, xmm0
pand xmm1, xmm7
movaps xmm2, xmm0
mulps xmm0, xmmword [ebp + 0x20]
cvttps2dq xmm4, xmm0
cvtps2dq xmm0, xmm0
cvtdq2ps xmm4, xmm4
movaps xmm6, xmm0
pslld xmm6, 0x1f
cvtdq2ps xmm0, xmm0
pand xmm4, xmmword [ebp + 0xc0]
addps xmm4, xmmword [ebp]
por xmm4, xmm1
movaps xmm5, xmm2
movaps xmm3, xmmword [ebp + 0x70]
mulps xmm3, xmm0
subps xmm2, xmm3
movaps xmm3, xmmword [ebp + 0x80]
mulps xmm3, xmm0
subps xmm2, xmm3
movaps xmm3, xmmword [ebp + 0x90]
mulps xmm3, xmm0
subps xmm2, xmm3
movaps xmm3, xmmword [ebp + 0xa0]
mulps xmm3, xmm0
subps xmm2, xmm3
mulps xmm0, xmmword [ebp + 0xb0]
subps xmm2, xmm0
movaps xmm0, xmmword [ebp + 0x70]
mulps xmm0, xmm4
subps xmm5, xmm0
movaps xmm0, xmmword [ebp + 0x80]
mulps xmm0, xmm4
subps xmm5, xmm0
movaps xmm0, xmmword [ebp + 0x90]
mulps xmm0, xmm4
subps xmm5, xmm0
movaps xmm0, xmmword [ebp + 0xa0]
mulps xmm0, xmm4
subps xmm5, xmm0
mulps xmm4, xmmword [ebp + 0xb0]
subps xmm5, xmm4
pand xmm5, xmmword [ebp + 0xc0]
movaps xmm3, xmm2
movaps xmm1, xmm5
mulps xmm2, xmm2
mulps xmm5, xmm5
movaps xmm4, xmmword [ebp + 0x30]
movaps xmm0, xmmword [ebp + 0x30]
mulps xmm4, xmm5
mulps xmm0, xmm2
addps xmm4, xmmword [ebp + 0x40]
addps xmm0, xmmword [ebp + 0x40]
mulps xmm4, xmm5
mulps xmm0, xmm2
addps xmm4, xmmword [ebp + 0x50]
addps xmm0, xmmword [ebp + 0x50]
mulps xmm4, xmm5
mulps xmm0, xmm2
addps xmm4, xmmword [ebp + 0x60]
addps xmm0, xmmword [ebp + 0x60]
mulps xmm5, xmm1
mulps xmm2, xmm3
mulps xmm4, xmm5
mulps xmm0, xmm2
addps xmm4, xmm1
cmp ecx, 3
jne 0x1002b16b
movlps xmm1, qword [ebx]
movss xmm5, dword [ebx + 8]
shufps xmm5, xmm5, 0
movlhps xmm1, xmm5
jmp 0x1002b180
cmp ecx, 2
jne 0x1002b178
movlps xmm1, qword [ebx]
movlhps xmm1, xmm1
jmp 0x1002b180
movss xmm1, dword [ebx]
shufps xmm1, xmm1, 0
addps xmm0, xmm3
pxor xmm4, xmm6
pxor xmm0, xmm6
mulps xmm4, xmm1
mulps xmm0, xmm1
movaps xmm1, xmm4
unpcklps xmm1, xmm0
unpckhps xmm4, xmm0
cmp ecx, 1
jne 0x1002b1a4
movlps qword [edi], xmm1
jmp 0x1002b1b5
cmp ecx, 2
jne 0x1002b1ae
movups xmmword [edi], xmm1
jmp 0x1002b1b5
movups xmmword [edi], xmm1
movlps qword [edi + 0x10], xmm4
pop ebp
pop ebx
pop esi
pop edi
ret