Function at 0x691750
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 0x69178b
call fcn.00690b40
mov ebx, dword [esp]
mov eax, 0x3effffff
movd xmm3, eax
pshufd xmm3, xmm3, 0
and edx, edx
jne 0x691957
test esi, 0xc
je 0x6917df
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 0x6917a4
jmp 0x691b3a
sub ecx, 8
jl 0x6918bb
test esi, 0xf
jne 0x691880
test edi, 0xf
jne 0x691840
jmp 0x691800
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 0x691800
jmp 0x6918bb
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 0x691840
jmp 0x6918bb
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 0x691880
add ecx, 8
jle 0x691b3a
sub ecx, 4
jl 0x6918f0
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 0x691b3a
sub ecx, 2
jl 0x691928
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 0x691b3a
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 0x691b3a
test esi, 0xc
je 0x691996
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 0x691957
jmp 0x691b3a
sub ecx, 8
jl 0x691aa1
test esi, 0xf
jne 0x691a60
test edi, 0xf
jne 0x691a10
jmp 0x6919c0
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 0x6919c0
jmp 0x691aa1
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 0x691a10
jmp 0x691aa1
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 0x691a60
add ecx, 8
jle 0x691b3a
sub ecx, 4
jl 0x691ad9
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 0x691b3a
sub ecx, 2
jl 0x691b10
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 0x691b3a
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 0x691b59
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