Function at 0x699280
Capabilities:
Encode data using xor

Disassembly:
push ebx
push ebp
pcmpeqd xmm4, xmm4
push ecx
pcmpeqw xmm5, xmm5
push edx
pslld xmm4, 0xf
push esi
xorps xmm7, xmm7
push edi
psllw xmm5, 0xf
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
sub esp, 8
stmxcsr dword [esp]
and edx, edx
je 0x6992bb
call fcn.00698670
mov ebx, dword [esp]
mov eax, 0x3effffff
movd xmm3, eax
pshufd xmm3, xmm3, 0
and edx, edx
jne 0x699487
test esi, 0xc
je 0x69930f
movss xmm0, dword [esi]
add esi, 4
maxps xmm0, xmm7
addss xmm0, xmm3
add edi, 2
cvttps2dq xmm0, xmm0
paddd xmm0, xmm4
packssdw xmm0, xmm1
pxor xmm0, xmm5
movd eax, xmm0
mov word [edi - 2], ax
sub ecx, 1
jg 0x6992d4
jmp 0x69966a
sub ecx, 8
jl 0x6993eb
test esi, 0xf
jne 0x6993b0
test edi, 0xf
jne 0x699370
jmp 0x699330
movaps xmm0, xmmword [esi]
add edi, 0x10
movaps xmm1, xmmword [esi + 0x10]
add esi, 0x20
maxps xmm0, xmm7
maxps xmm1, xmm7
addps xmm0, xmm3
addps xmm1, xmm3
cvttps2dq xmm0, xmm0
cvttps2dq xmm1, xmm1
paddd xmm0, xmm4
paddd xmm1, xmm4
packssdw xmm0, xmm1
pxor xmm0, xmm5
movdqa xmmword [edi - 0x10], xmm0
sub ecx, 8
jge 0x699330
jmp 0x6993eb
movaps xmm0, xmmword [esi]
add edi, 0x10
movaps xmm1, xmmword [esi + 0x10]
add esi, 0x20
maxps xmm0, xmm7
maxps xmm1, xmm7
addps xmm0, xmm3
addps xmm1, xmm3
cvttps2dq xmm0, xmm0
cvttps2dq xmm1, xmm1
paddd xmm0, xmm4
paddd xmm1, xmm4
packssdw xmm0, xmm1
pxor xmm0, xmm5
movdqu xmmword [edi - 0x10], xmm0
sub ecx, 8
jge 0x699370
jmp 0x6993eb
movups xmm0, xmmword [esi]
add edi, 0x10
movups xmm1, xmmword [esi + 0x10]
add esi, 0x20
maxps xmm0, xmm7
maxps xmm1, xmm7
addps xmm0, xmm3
addps xmm1, xmm3
cvttps2dq xmm0, xmm0
cvttps2dq xmm1, xmm1
paddd xmm0, xmm4
paddd xmm1, xmm4
packssdw xmm0, xmm1
pxor xmm0, xmm5
movdqu xmmword [edi - 0x10], xmm0
sub ecx, 8
jge 0x6993b0
add ecx, 8
jle 0x69966a
sub ecx, 4
jl 0x699420
movups xmm0, xmmword [esi]
add esi, 0x10
maxps xmm0, xmm7
addps xmm0, xmm3
add edi, 8
cvttps2dq xmm0, xmm0
paddd xmm0, xmm4
packssdw xmm0, xmm0
pxor xmm0, xmm5
sub ecx, 4
movq qword [edi - 8], xmm0
add ecx, 4
jle 0x69966a
sub ecx, 2
jl 0x699458
xorps xmm0, xmm0
movlps xmm0, qword [esi]
add esi, 8
maxps xmm0, xmm7
addps xmm0, xmm3
add edi, 4
cvttps2dq xmm0, xmm0
paddd xmm0, xmm4
packssdw xmm0, xmm0
pxor xmm0, xmm5
sub ecx, 2
movd dword [edi - 4], xmm0
add ecx, 2
jle 0x69966a
movss xmm0, dword [esi]
maxps xmm0, xmm7
addps xmm0, xmm3
cvttps2dq xmm0, xmm0
paddd xmm0, xmm4
packssdw xmm0, xmm0
pxor xmm0, xmm5
movd eax, xmm0
mov word [edi], ax
jmp 0x69966a
test esi, 0xc
je 0x6994c6
movss xmm0, dword [esi]
mulss xmm0, xmm6
add esi, 4
maxps xmm0, xmm7
addss xmm0, xmm3
add edi, 2
cvttps2dq xmm0, xmm0
paddd xmm0, xmm4
packssdw xmm0, xmm1
pxor xmm0, xmm5
movd eax, xmm0
mov word [edi - 2], ax
sub ecx, 1
jg 0x699487
jmp 0x69966a
sub ecx, 8
jl 0x6995d1
test esi, 0xf
jne 0x699590
test edi, 0xf
jne 0x699540
jmp 0x6994f0
movaps xmm0, xmmword [esi]
mulps xmm0, xmm6
add edi, 0x10
movaps xmm1, xmmword [esi + 0x10]
mulps xmm1, xmm6
add esi, 0x20
maxps xmm0, xmm7
maxps xmm1, xmm7
addps xmm0, xmm3
addps xmm1, xmm3
cvttps2dq xmm0, xmm0
cvttps2dq xmm1, xmm1
paddd xmm0, xmm4
paddd xmm1, xmm4
packssdw xmm0, xmm1
pxor xmm0, xmm5
movdqa xmmword [edi - 0x10], xmm0
sub ecx, 8
jge 0x6994f0
jmp 0x6995d1
movaps xmm0, xmmword [esi]
mulps xmm0, xmm6
add edi, 0x10
movaps xmm1, xmmword [esi + 0x10]
mulps xmm1, xmm6
add esi, 0x20
maxps xmm0, xmm7
maxps xmm1, xmm7
addps xmm0, xmm3
addps xmm1, xmm3
cvttps2dq xmm0, xmm0
cvttps2dq xmm1, xmm1
paddd xmm0, xmm4
paddd xmm1, xmm4
packssdw xmm0, xmm1
pxor xmm0, xmm5
movdqu xmmword [edi - 0x10], xmm0
sub ecx, 8
jge 0x699540
jmp 0x6995d1
movups xmm0, xmmword [esi]
mulps xmm0, xmm6
add edi, 0x10
movups xmm1, xmmword [esi + 0x10]
mulps xmm1, xmm6
add esi, 0x20
maxps xmm0, xmm7
maxps xmm1, xmm7
addps xmm0, xmm3
addps xmm1, xmm3
cvttps2dq xmm0, xmm0
cvttps2dq xmm1, xmm1
paddd xmm0, xmm4
paddd xmm1, xmm4
packssdw xmm0, xmm1
pxor xmm0, xmm5
movdqu xmmword [edi - 0x10], xmm0
sub ecx, 8
jge 0x699590
add ecx, 8
jle 0x69966a
sub ecx, 4
jl 0x699609
movups xmm0, xmmword [esi]
mulps xmm0, xmm6
add esi, 0x10
maxps xmm0, xmm7
addps xmm0, xmm3
add edi, 8
cvttps2dq xmm0, xmm0
paddd xmm0, xmm4
packssdw xmm0, xmm0
pxor xmm0, xmm5
sub ecx, 4
movq qword [edi - 8], xmm0
add ecx, 4
jle 0x69966a
sub ecx, 2
jl 0x699640
xorps xmm0, xmm0
movlps xmm0, qword [esi]
mulps xmm0, xmm6
add esi, 8
maxps xmm0, xmm7
addps xmm0, xmm3
add edi, 4
cvttps2dq xmm0, xmm0
paddd xmm0, xmm4
packssdw xmm0, xmm0
pxor xmm0, xmm5
sub ecx, 2
movd dword [edi - 4], xmm0
add ecx, 2
jle 0x69966a
movss xmm0, dword [esi]
mulss xmm0, xmm6
maxps xmm0, xmm7
addps xmm0, xmm3
cvttps2dq xmm0, xmm0
paddd xmm0, xmm4
packssdw xmm0, xmm0
pxor xmm0, xmm5
movd eax, xmm0
mov word [edi], ax
stmxcsr dword [esp + 4]
mov eax, dword [esp + 4]
xor eax, ebx
and eax, 0x6001
je 0x699689
and ebx, 0xffbf
mov dword [esp], ebx
ldmxcsr dword [esp]
add esp, 8
pop edi
pop esi
pop edx
pop ecx
pop ebp
pop ebx
ret