Function at 0x2f8871ef0
Capabilities:
Encode data using xor

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x540
mov rbx, rcx
cmp r10w, r12w
jne 0x2f8871f71
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 0x2f8871f92
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 rdx, qword [rcx + 8]
mov rcx, qword [rcx]
lea r9, [rsp + 0x60]
mov r8d, 0x40
call fcn.2f8872e98
mov dword [rsp + 0x68], 0x46005a
mov word [rsp + 0x6c], 0
push r10
por mm2, mm0
psrlw mm1, 0x22
push rbx
psraw mm0, 0x1d
inc r10
push r8
nop
psrld mm4, 1
push r13
emms
dec r8d
pop r13
adc r10, r8
pandn mm1, mm3
pop r8
emms
pslld mm0, 0x55
pop rbx
emms
emms
pop r10
mov dword [rsp + 0x70], 0x4b007c
mov word [rsp + 0x74], 0
push r10
pmulhuw mm7, mm6
push r8
not r10
push rcx
nop
push r14
pmulhuw mm0, mm2
push r13
rol r8d, 3
pop r13
rcpss xmm13, xmm9
pop r14
sbb r8b, 0x13
pop rcx
xor r8d, r10d
pop r8
psrlw mm5, 0x39
pop r10
lea rsi, [rsp + 0x70]
lea rdi, [rsp + 0x68]
mov rdx, rsi
mov rcx, rdi
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x2f88720ac
cmp r10d, eax
jne 0x2f887208b
push rax
psadbw mm5, mm6
push r14
nop
pslld mm1, 0x44
pop r14
paddusb mm2, mm4
pop rax
jmp 0x2f8872099
push rcx
emms
push r10
xchg rcx, r10
nop
pop r10
emms
pop rcx
push rbx
emms
push r11
psubw mm6, mm1
pcmpgtb mm5, mm1
pop r11
paddusw mm3, mm2
pop rbx
jmp 0x2f8872106
mov rax, rsi
lea rdx, [rsp + 0x74]
push r11
pslld mm4, 0x65
push r13
inc r13
pop r13
nop
pop r11
xor word [rax], 5
push rcx
psrlq mm7, 0x49
not rcx
sub ecx, 2
andnps xmm12, xmm15
emms
push r12
nop
movlhps xmm6, xmm5
psrad mm6, 0x38
andnps xmm5, xmm2
punpckldq mm0, mm2
pop r12
pslld mm7, 0x33
pslld mm7, 0x18
rcr ecx, 0x17
emms
pcmpgtd mm7, mm4
nop
pop rcx
add rax, 2
cmp rax, rdx
jne 0x2f88720b4
push rbx
mov rbx, 3
push rcx
push rax
pop rax
pop rcx
dec rbx
jne 0x2f887210e
pop rbx
xor eax, eax
mov qword [rsp + 0x68], rax
push r13
pcmpgtb mm4, mm2
comiss xmm15, xmm3
emms
pslld mm4, 0x65
paddusw mm7, mm0
psrlw mm3, 0x3c
nop
pop r13
mov rax, qword [section..rdata]
xor edx, edx
xor ecx, ecx
or r9, 0xffffffffffffffff
mov qword [rsp + 0x50], rdx
xor r8d, r8d
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x38], rdx
mov edx, 0x1fffff
mov qword [rsp + 0x28], rcx
mov rcx, rdi
mov dword [rsp + 0x30], 5
mov qword [rsp + 0x20], rax
call fcn.2f888003a
cmp r10w, r12w
jne 0x2f88721f1
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 0x2f8872212
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
cmp qword [rsp + 0x68], 0
je 0x2f88724e6
push rbx
pcmpgtw mm6, mm1
pop rbx
cmp r10b, 0x41
jne 0x2f8872249
push r11
dec r11
pop r11
jmp 0x2f887224f
push rax
subps xmm14, xmm0
pop rax
push r10
movhlps xmm3, xmm9
pop r10
call fcn.2f88833f4
mov dword [rsp + 0xa0], 0x10000b
cmp r10d, r12d
jne 0x2f8872280
push r12
nop
push r11
subps xmm6, xmm14
punpckhwd mm4, mm5
pop r11
emms
pop r12
jmp 0x2f8872291
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
mov rcx, qword [rsp + 0x68]
mov rdx, rsi
call fcn.2f8877f47
test eax, eax
je 0x2f8872346
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 rcx, qword [rsp + 0x68]
call fcn.2f887c80c
cmp r10d, r13d
jne 0x2f8872319
push r13
punpckldq mm1, mm3
push rcx
psrlq mm2, 0x4b
emms
pop rcx
psllq mm6, 0x43
pop r13
jmp 0x2f887232a
push r8
pslld mm5, 0x61
push rax
inc eax
not eax
pop rax
punpcklwd mm6, mm0
pop r8
push r12
neg r12b
push rbx
not r12d
dec r12
pop rbx
pcmpeqb mm2, mm1
pop r12
call fcn.2f888468a
jmp 0x2f88725ab
push r10
emms
psraw mm6, 0x1b
psrlw mm3, 0x61
dec r10d
pslld mm0, 0x6a
push r11
pslld mm5, 0x22
emms
not r10d
por mm7, mm5
add r10w, r11w
pop r11
comiss xmm12, xmm15
andnps xmm10, xmm2
paddw mm5, mm3
emms
punpcklwd mm2, mm4
emms
pop r10
mov rax, qword [rbx]
mov qword [rsp + 0xf0], rax
push r14
shl r14d, 6
push r12
psubusw mm6, mm1
push r8
pcmpeqb mm0, mm5
push r11
shl r12, 0xb
pop r11
dec r14
pop r8
emms
pop r12
emms
pop r14
call fcn.2f8884e03
mov rcx, qword [rsp + 0x68]
mov rdx, rsi
call fcn.2f887ec5d
test eax, eax
je 0x2f8872474
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
mov rcx, qword [rsp + 0x68]
call fcn.2f887c80c
push r14
sar r14, 0xf
pxor mm5, mm3
dec r14
psrlw mm0, 0x44
rcl r14d, 4
packuswb mm1, mm0
not r14w
emms
paddusb mm6, mm0
nop
pslld mm7, 0x54
rcr r14d, 0x13
pop r14
jmp 0x2f88725ab
push rdx
emms
pop rdx
push rdx
emms
pmullw mm6, mm1
pcmpgtd mm6, mm5
emms
psrad mm5, 0x4f
push r11
test edx, r11d
nop
emms
subps xmm14, xmm12
push r10
and r10d, edx
nop
xadd r10, r11
push r15
sbb r11w, r15w
not r10d
push rax
not r11b
pop rax
psrlw mm4, 0x60
pmaxsw mm7, mm0
pop r15
maxps xmm2, xmm8
emms
emms
pop r10
emms
nop
nop
dec r11d
pop r11
rol edx, 0x15
psraw mm7, 0x3f
punpcklwd mm6, mm5
emms
psubw mm6, mm0
pop rdx
mov rcx, qword [rsp + 0x68]
lea rdx, [rsp + 0x64]
call fcn.2f887e42e
push rcx
emms
psubsb mm5, mm7
movhlps xmm4, xmm12
psllq mm5, 0x5d
nop
push r15
cmp r15b, cl
mov r15b, 2
sbb r15d, ecx
movups xmm14, xmm13
push r14
psrld mm2, 2
maxss xmm6, xmm5
pmaxsw mm7, mm3
push r8
emms
por mm5, mm2
push r10
ror r8w, 0x14
pop r10
psrld mm1, 0x47
sub r8, r15
pop r8
psubusw mm7, mm0
rcl cl, 1
psllq mm6, 0x35
pop r14
emms
psraw mm7, 0x23
addps xmm6, xmm12
psadbw mm3, mm0
pop r15
maxss xmm5, xmm7
addps xmm2, xmm11
psllq mm3, 0xa
psrlq mm7, 0x2c
psubsb mm0, mm7
pop rcx
mov rcx, qword [rsp + 0x68]
call fcn.2f887c80c
cmp r10, r12
jne 0x2f887257a
push rbx
pminsw mm2, mm0
push r12
emms
sar bl, 1
pop r12
movhlps xmm3, xmm10
pop rbx
jmp 0x2f8872589
push rax
emms
push r13
rol eax, 0x17
emms
pop r13
emms
pop rax
push r10
emms
push r11
paddd mm7, mm3
not r10w
pop r11
shr r10b, 0x12
pop r10
call fcn.2f8883e7e
xor ecx, ecx
call fcn.2f887f2c9
nop
add rsp, 0x540
pop rbx
pop rsi
pop rdi
ret