Function at 0x6955a0
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 0x6955db
call fcn.00694990
mov ebx, dword [esp]
mov eax, 0x3effffff
movd xmm3, eax
pshufd xmm3, xmm3, 0
and edx, edx
jne 0x6957a7
test esi, 0xc
je 0x69562f
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 0x6955f4
jmp 0x69598a
sub ecx, 8
jl 0x69570b
test esi, 0xf
jne 0x6956d0
test edi, 0xf
jne 0x695690
jmp 0x695650
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 0x695650
jmp 0x69570b
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 0x695690
jmp 0x69570b
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 0x6956d0
add ecx, 8
jle 0x69598a
sub ecx, 4
jl 0x695740
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 0x69598a
sub ecx, 2
jl 0x695778
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 0x69598a
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 0x69598a
test esi, 0xc
je 0x6957e6
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 0x6957a7
jmp 0x69598a
sub ecx, 8
jl 0x6958f1
test esi, 0xf
jne 0x6958b0
test edi, 0xf
jne 0x695860
jmp 0x695810
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 0x695810
jmp 0x6958f1
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 0x695860
jmp 0x6958f1
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 0x6958b0
add ecx, 8
jle 0x69598a
sub ecx, 4
jl 0x695929
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 0x69598a
sub ecx, 2
jl 0x695960
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 0x69598a
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 0x6959a9
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