Function at 0x2f887194c
Capabilities:
Encode data using xor

Disassembly:
push rbx
sub rsp, 0x50
push r11
mov r11w, 0x14
neg r11b
push rbx
mulss xmm4, xmm10
inc rbx
push rdx
add bx, r11w
emms
push r8
emms
psraw mm3, 0x5d
pop r8
inc ebx
nop
pop rdx
rcpss xmm11, xmm8
psrad mm3, 0x36
pop rbx
nop
subss xmm5, xmm12
pop r11
push rdx
mov rdx, 1
cmp r10d, r11d
jne 0x2f88719a9
push r10
ucomiss xmm12, xmm1
pop r10
jmp 0x2f88719b0
push r8
por mm1, mm2
pop r8
push r14
emms
pop r14
dec rdx
jne 0x2f8871993
pop rdx
push r10
nop
push r12
pminsw mm7, mm6
neg r10d
push r11
dec r12d
inc r11d
pslld mm0, 0x26
push r15
comiss xmm11, xmm13
add r15w, r11w
emms
emms
pop r15
emms
or r11w, r12w
emms
pop r11
punpcklbw mm3, mm1
rcl r10w, 0xf
pop r12
xorps xmm13, xmm3
pop r10
cmp r10b, r12b
jne 0x2f8871a13
push r8
pxor mm4, mm1
pop r8
jmp 0x2f8871a1b
push r11
psraw mm2, 0x68
pop r11
push rdx
psadbw mm0, mm2
pop rdx
push r9
psrlw mm5, 0x5e
psubusw mm7, mm3
not r9w
push r8
punpckldq mm3, mm0
shl r8b, 0xe
neg r8d
push rbx
paddsw mm4, mm1
not r9b
psrlw mm2, 6
pop rbx
pslld mm7, 0x47
sbb r9b, 0x17
paddusw mm5, mm0
pop r8
rcr r9w, 0xb
psrlw mm0, 0x1d
emms
pop r9
mov edx, 4
mov ecx, 5
call sub.msvcrt.dll_calloc
mov rcx, rax
push r8
emms
push r15
sub r15, r8
push r12
dec r12d
pop r12
packsswb mm1, mm4
pop r15
mov r8w, 5
pop r8
mov edx, 0x8c
call sub.msvcrt.dll_realloc
mov rcx, rax
xor eax, eax
push r13
minps xmm7, xmm0
pxor mm0, mm2
nop
push rax
rcr r13w, 2
sub ax, 0x14
inc r13
push rbx
ror al, 2
nop
push r9
not ax
nop
pop r9
nop
dec ebx
nop
pop rbx
inc rax
sub r13d, eax
pop rax
nop
inc r13d
pop r13
xor dword [rcx + rax*4], 0x14
push r15
paddb mm3, mm1
pop r15
inc rax
cmp rax, 5
jne 0x2f8871a9c
call sub.msvcrt.dll_free
push r13
ror r13, 0xc
neg r13d
psadbw mm7, mm5
push rbx
shl r13, 7
mulps xmm8, xmm3
nop
push r9
sub r13w, bx
sub r13w, 0x17
nop
pop r9
psllq mm0, 0x41
emms
andps xmm14, xmm0
pop rbx
pmulhuw mm5, mm3
not r13w
emms
pop r13
push rcx
mov rcx, 1
push rax
inc eax
addps xmm9, xmm0
emms
shl rax, 0x11
psrlq mm1, 0x11
push r8
nop
pcmpgtd mm3, mm6
nop
pmaddwd mm6, mm5
dec eax
pop r8
not rax
movups xmm6, xmm9
psraw mm1, 0x59
dec rax
movss xmm7, xmm14
neg al
pop rax
dec rcx
jne 0x2f8871b2c
pop rcx
push r11
mov r11, 2
push r10
pop r10
dec r11
jne 0x2f8871b70
pop r11
cmp r10b, r12b
jne 0x2f8871b91
push r8
pxor mm4, mm1
pop r8
jmp 0x2f8871b99
push r11
psraw mm2, 0x68
pop r11
push rdx
psadbw mm0, mm2
pop rdx
push rbx
pcmpgtw mm6, mm1
pop rbx
push rax
not al
andnps xmm14, xmm4
dec rax
nop
push r8
emms
inc rax
nop
push r13
emms
dec r8d
push rcx
subss xmm1, xmm8
pop rcx
nop
inc r13d
pop r13
psrlq mm4, 0x5b
psrlq mm0, 0x21
emms
pop r8
paddusw mm3, mm0
emms
emms
neg ax
pop rax
rdtsc
push r13
psllq mm7, 4
pop r13
shl rdx, 0x20
mov eax, eax
mov rbx, rdx
or rbx, rax
push r14
mov r14, 2
push rcx
push r8
pop r8
pop rcx
dec r14
jne 0x2f8871c00
pop r14
call fcn.2f8884ac1
cmp r10w, r12w
jne 0x2f8871c86
push rdx
paddsw mm7, mm0
nop
push r8
rcr r8, 0xd
psadbw mm5, mm2
push r15
addps xmm4, xmm9
neg r15w
push r10
adc r10d, r8d
not r15d
push r14
nop
psrad mm3, 0x1c
pop r14
emms
psraw mm7, 0x3c
pop r10
pminsw mm0, mm4
add r8, r15
pop r15
maxss xmm8, xmm6
not dl
pop r8
emms
sub rdx, 0x13
pop rdx
jmp 0x2f8871ca7
push rdx
shl dl, 0xd
push r9
adc r9d, edx
push rcx
emms
push r8
pcmpeqb mm1, mm7
pop r8
punpckldq mm3, mm4
pop rcx
add dx, r9w
pop r9
sar dl, 5
pop rdx
push r10
mulss xmm14, xmm8
push rbx
pxor mm4, mm6
xadd r10w, bx
pop rbx
not r10w
pop r10
mov qword [rsp + 0x48], 0xffffffffffffd8f0
cmp r10w, r15w
jne 0x2f8871cd5
push rax
ucomiss xmm2, xmm14
pop rax
jmp 0x2f8871cdb
push r13
emms
pop r13
push rcx
emms
pop rcx
call fcn.2f8883b50
mov ecx, 0x14
mov rax, rbx
xor edx, edx
div rcx
imul ebx, edx, 0x3e8
push r11
pslld mm3, 0x6b
push r10
shl r10d, 3
neg r11d
push rcx
inc r10d
nop
xchg r10d, r11d
pop rcx
adc r10d, r11d
mulps xmm15, xmm0
pop r10
punpckldq mm3, mm5
pop r11
lea eax, [rbx + 0x2710]
imul rax, qword [rsp + 0x48]
mov qword [rsp + 0x48], rax
push rcx
emms
nop
nop
psrld mm3, 0xa
not ecx
push rax
nop
psrad mm2, 0x40
nop
nop
push r8
pcmpgtw mm4, mm7
nop
emms
push r12
nop
dec rax
push r11
nop
pop r11
addps xmm4, xmm9
shr rcx, 0xa
pop r12
packsswb mm4, mm7
and rcx, r8
emms
pop r8
emms
emms
xor cx, ax
psrlq mm0, 0x13
pop rax
psrlq mm6, 0x15
psrlq mm2, 0x44
emms
pslld mm6, 0x31
pmulhuw mm5, mm3
pop rcx
call fcn.2f8884261
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x28]
call fcn.2f887944a
lea rdx, [rsp + 0x48]
xor ecx, ecx
call fcn.2f887bfb1
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x38]
call fcn.2f887944a
cmp r10d, r12d
jne 0x2f8871dce
push r12
nop
push r11
subps xmm6, xmm14
punpckhwd mm4, mm5
pop r11
emms
pop r12
jmp 0x2f8871ddf
push rcx
sar cl, 1
push r8
nop
rcpss xmm4, xmm7
pop r8
psrlw mm3, 0x1c
pop rcx
push r15
nop
push r9
sbb r15w, r9w
packuswb mm1, mm2
pop r9
inc r15d
pop r15
imul rax, qword [rsp + 0x38], 0x3e8
cqo
idiv qword [rsp + 0x30]
mov rcx, rax
imul rax, qword [rsp + 0x28], 0x3e8
cqo
idiv qword [rsp + 0x40]
sub ecx, eax
push r14
pcmpeqb mm7, mm6
sar r14d, 0xc
orps xmm4, xmm14
psraw mm7, 0x36
psubusw mm4, mm2
push rbx
pslld mm3, 0x52
inc r14
nop
emms
push r12
sar rbx, 0x17
movss xmm2, xmm12
pmaxsw mm6, mm3
push r8
rcpps xmm12, xmm2
psllq mm4, 0x20
push r9
psrlq mm6, 0x25
pop r9
emms
neg r12d
pop r8
shl r12b, 0x16
rcpps xmm3, xmm12
nop
pop r12
emms
dec r14
inc r14
neg r14
pop rbx
nop
sbb r14, 0x11
movlhps xmm0, xmm14
psrld mm1, 0x42
packssdw mm5, mm4
pop r14
add ebx, 0x2328
cmp ebx, ecx
jae 0x2f8871eb9
cmp r10w, 0xe
jne 0x2f8871ea6
push rdx
movss xmm13, xmm9
pop rdx
jmp 0x2f8871ead
push r13
dec r13d
pop r13
push r15
sar r15b, 0xd
pop r15
xor eax, eax
jmp 0x2f8871ee4
push r11
pslld mm3, 0x6b
push r10
shl r10d, 3
neg r11d
push rcx
inc r10d
nop
xchg r10d, r11d
pop rcx
adc r10d, r11d
mulps xmm15, xmm0
pop r10
punpckldq mm3, mm5
pop r11
mov eax, 1
add rsp, 0x50
pop rbx
ret