Function at 0x1002b2a0
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, [0x1002b1c0]
movaps xmm7, xmmword [ebp + 0xd0]
cmp ecx, 4
jl 0x1002b570
mov eax, esi
or eax, ebx
or eax, edi
and eax, 0xf
jne 0x1002b430
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 0x1002b2e0
jmp 0x1002b570
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 0x1002b430
mov edi, edi
or ecx, ecx
je 0x1002b705
cmp ecx, 3
jne 0x1002b58e
movlps xmm0, qword [esi]
movss xmm3, dword [esi + 8]
shufps xmm3, xmm3, 0
movlhps xmm0, xmm3
jmp 0x1002b5a3
cmp ecx, 2
jne 0x1002b59b
movlps xmm0, qword [esi]
movlhps xmm0, xmm0
jmp 0x1002b5a3
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 0x1002b6bb
movlps xmm1, qword [ebx]
movss xmm5, dword [ebx + 8]
shufps xmm5, xmm5, 0
movlhps xmm1, xmm5
jmp 0x1002b6d0
cmp ecx, 2
jne 0x1002b6c8
movlps xmm1, qword [ebx]
movlhps xmm1, xmm1
jmp 0x1002b6d0
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 0x1002b6f4
movlps qword [edi], xmm1
jmp 0x1002b705
cmp ecx, 2
jne 0x1002b6fe
movups xmmword [edi], xmm1
jmp 0x1002b705
movups xmmword [edi], xmm1
movlps qword [edi + 0x10], xmm4
pop ebp
pop ebx
pop esi
pop edi
ret