Function at 0x2904e9def
Capabilities:
Encode data using xor

Disassembly:
push rcx
mov rcx, 1
push r9
push r12
pop r12
pop r9
dec rcx
jne 0x2904e9df7
pop rcx
mov qword [rsp + 8], rcx
push r13
psrad mm6, 0x5d
emms
push rdx
emms
pop rdx
nop
pcmpeqb mm0, mm4
pop r13
mov qword [rsp + 0x10], rdx
push r9
emms
push rdx
packssdw mm4, mm3
psraw mm1, 0x44
pop rdx
dec r9
pop r9
mov qword [rsp + 0x18], r8
cmp r12, r8
jne 0x2904e9ea6
push rcx
neg cx
movhlps xmm5, xmm8
shr cx, 0xe
subss xmm1, xmm8
push r14
paddsb mm0, mm6
neg cl
nop
punpckhwd mm0, mm2
pop r14
orps xmm4, xmm0
paddd mm7, mm6
xorps xmm8, xmm4
ror cl, 0xd
pop rcx
jmp 0x2904e9ec7
push rcx
pcmpeqd mm1, mm2
push r8
psrld mm3, 0x21
not r8b
push rdx
dec edx
emms
emms
pop rdx
sar r8, 0x15
nop
pop r8
psllq mm3, 0x47
pop rcx
cmp r12w, 0x2a
jne 0x2904e9ede
push rbx
inc ebx
push rcx
maxss xmm10, xmm14
nop
pop rcx
emms
pop rbx
jmp 0x2904e9ef3
push r9
andnps xmm0, xmm5
push r8
pcmpeqw mm0, mm7
adc r9d, r8d
pop r8
psrlq mm3, 0x5c
pop r9
push r11
sar r11w, 9
push rdx
xchg dx, r11w
rol edx, 1
pop rdx
movaps xmm9, xmm7
pop r11
mov qword [rsp + 0x20], r9
push r13
movhlps xmm4, xmm15
pslld mm7, 7
push r14
inc r14
psraw mm4, 8
push r8
rcr r8b, 2
emms
push rcx
psrad mm7, 0x34
subps xmm11, xmm6
push r9
or r14b, r8b
rol r9w, 0xc
pop r9
xchg r14d, r13d
shl rcx, 0xb
pop rcx
psrlw mm1, 8
or r8, r13
pop r8
dec r13d
cmp r14w, r13w
pop r14
pslld mm1, 0x27
shr r13d, 0x16
pop r13
sub rsp, 0x64
push rcx
emms
packsswb mm0, mm7
push r11
psrad mm4, 0x63
rcl cx, 0xd
push r8
psubusw mm4, mm1
test r8d, ecx
push r9
movss xmm13, xmm8
andnps xmm10, xmm13
pop r9
nop
shl r8, 0x12
pop r8
neg r11d
maxps xmm13, xmm3
pop r11
neg cx
emms
pop rcx
movabs rcx, 0xc2860f25
push r13
psraw mm5, 0x16
push r9
paddw mm4, mm1
xchg r9w, r13w
push r11
neg r9d
nop
pmulhuw mm7, mm2
push rdx
rcr dx, 0x10
sbb r9w, 0xa
movss xmm7, xmm0
ror r13w, 9
pop rdx
emms
and r9d, r11d
neg r9d
pop r11
dec r9d
ucomiss xmm11, xmm10
pop r9
pslld mm6, 0x2e
pop r13
call fcn.2904e80ac
push r9
mov r9, 1
push r15
push rbx
pop rbx
pop r15
dec r9
jne 0x2904e9ffd
pop r9
mov r15, rax
push rax
mov rax, 3
push r8
pop r8
dec rax
jne 0x2904ea015
pop rax
movabs rcx, 0xc2860f25
push rbx
psrlq mm5, 0x27
pcmpeqb mm3, mm5
subss xmm10, xmm2
dec rbx
push r13
addss xmm13, xmm10
paddsb mm5, mm1
psrld mm5, 0x51
emms
pop r13
emms
pcmpeqd mm0, mm1
movlhps xmm14, xmm2
rcr ebx, 0x12
pop rbx
call fcn.2904e8246
cmp r12b, 0x12
jne 0x2904ea077
push rcx
psraw mm2, 0x6a
push rbx
psrad mm1, 0x27
psrlq mm6, 0x2e
pop rbx
emms
pop rcx
jmp 0x2904ea087
push rdx
nop
push r9
psrld mm4, 0x3f
nop
pop r9
psllq mm3, 5
pop rdx
push r8
inc r8d
push r10
not r10
add r8w, r10w
pop r10
inc r8d
pop r8
add rsp, 0x64
push rdx
psllq mm5, 0x4a
movss xmm9, xmm6
emms
push r8
xor rdx, r8
nop
subps xmm4, xmm5
push rcx
psrlw mm3, 0x39
adc rcx, rdx
emms
pop rcx
dec edx
emms
neg r8b
pop r8
nop
psraw mm7, 0x62
psllq mm7, 0x46
pop rdx
mov rcx, qword [rsp + 8]
push r12
packssdw mm0, mm1
push r13
punpckhwd mm7, mm1
push r8
not r12b
pop r8
pslld mm1, 0xd
pop r13
emms
pop r12
mov rdx, qword [rsp + 0x10]
cmp r12, 0x51
jne 0x2904ea106
push rbx
orps xmm5, xmm9
pop rbx
jmp 0x2904ea10d
push r8
dec r8d
pop r8
push r14
psubsb mm3, mm7
pop r14
mov r8, qword [rsp + 0x18]
push r11
mov r11, 3
push rdx
pcmpeqw mm5, mm1
push r15
mov rdx, r15
emms
push rbx
nop
movhlps xmm1, xmm12
shl bx, 0x16
push r10
mov r10, 3
psrlw mm0, 0xe
movlhps xmm3, xmm5
inc r10d
push r13
psrad mm6, 0x33
nop
rol r13w, 0x12
rcpps xmm8, xmm15
nop
pop r13
xorps xmm10, xmm1
emms
emms
mov edx, r10d
pop r10
not r15b
not r15b
nop
pop rbx
shr dl, 5
emms
pop r15
mov edx, 9
pop rdx
dec r11
jne 0x2904ea122
pop r11
mov r9, qword [rsp + 0x20]
cmp r12, 0x69
jne 0x2904ea1a7
push r9
psrld mm2, 0x4e
push r13
nop
adc r9, r13
pop r13
ucomiss xmm2, xmm13
pop r9
jmp 0x2904ea1ba
push r14
psubw mm3, mm4
push rax
dec r14
rcpps xmm1, xmm3
pop rax
psrad mm7, 0x33
pop r14
push r12
emms
push r8
orps xmm3, xmm15
pcmpgtd mm2, mm5
pop r8
psrad mm5, 0x2b
pop r12
mov r10, rcx
push r11
nop
sbb r11, 0x12
push r8
inc r8
mov r8w, r11w
push r13
dec r8d
and r8d, r11d
push rbx
pmaddwd mm3, mm5
psllq mm6, 0x4b
pop rbx
psrlw mm6, 0x18
and r8, r11
pop r13
movhlps xmm9, xmm5
and r8w, r11w
pop r8
mulss xmm1, xmm5
emms
pop r11
jmp r15