Function at 0x2e4998ba0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rbx
sub rsp, 0x88
push rcx
psllq mm6, 0x2b
push r12
or ecx, r12d
not r12d
push r14
paddw mm1, mm2
sbb r12w, cx
maxss xmm8, xmm6
push r8
add r12w, cx
emms
sub r14, rcx
and r14d, ecx
pop r8
emms
sbb cx, 0x13
inc r14
pop r14
pminsw mm2, mm1
nop
pop r12
rol cx, 0x17
pop rcx
push rax
paddb mm0, mm4
nop
pmaxsw mm0, mm6
inc eax
push rbx
psubw mm6, mm3
psrlq mm6, 0x64
emms
push r15
emms
cmp eax, ebx
push r8
dec r8
pop r8
nop
emms
pop r15
punpcklwd mm2, mm1
rcr al, 9
movups xmm2, xmm8
pop rbx
psraw mm2, 0x1c
sar al, 3
pslld mm5, 0x34
pcmpgtd mm4, mm2
pop rax
xor eax, eax
xor edx, edx
lea r8, [rsp + 0x40]
mov r9d, 0x40
mov qword [rsp + 0x20], rax
call fcn.2e49aab2f
test eax, eax
js 0x2e4998edd
cmp qword [rsp + 0x40], 0x3f
jbe 0x2e4998edd
mov dword [rsp + 0x32], 0x60005f
mov word [rsp + 0x36], 0
push rdx
mov rdx, 3
push rcx
push r8
pop r8
pop rcx
dec rdx
jne 0x2e4998c6e
pop rdx
movabs rax, 0x7300700029
mov qword [rsp + 0x38], rax
push r12
emms
push r15
sub r12, r15
push r8
nop
pop r8
comiss xmm6, xmm2
pop r15
movups xmm15, xmm5
pop r12
lea rsi, [rsp + 0x38]
lea rbx, [rsp + 0x32]
mov rdx, rsi
mov rcx, rbx
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x2e4998cf2
mov rax, rbx
lea rdx, [rsp + 0x36]
cmp dx, 0x68
jne 0x2e4998cd2
push r9
mov r9b, 0x12
pop r9
jmp 0x2e4998cd7
push rax
paddw mm2, mm1
pop rax
push rbx
movlhps xmm0, xmm1
pop rbx
xor word [rax], 7
push r11
punpckhwd mm5, mm7
pop r11
add rax, 2
cmp rax, rdx
jne 0x2e4998cc3
jmp 0x2e4998d04
push rax
mov rax, 1
push r8
pop r8
dec rax
jne 0x2e4998cfa
pop rax
push r13
mov r13, 2
push rcx
pop rcx
dec r13
jne 0x2e4998d0d
pop r13
mov eax, 1
test byte [rsp + 0x78], 0x10
jne 0x2e4998f57
mov dword [rsp + 0x32], 0x584e6c
push r11
nop
push r15
emms
push r8
mov r15b, r11b
push r12
sar r15w, 0x14
push rbx
psraw mm7, 0x27
push rcx
psraw mm2, 0x6a
pop rcx
mov bx, 0xf
pop rbx
rol r15, 0x15
pop r12
test r8d, r15d
pop r8
paddusb mm5, mm4
pop r15
emms
pop r11
mov dword [rsp + 0x38], 0x652e6f2c
mov byte [rsp + 0x3c], 0
push r11
pcmpgtd mm4, mm1
push r13
emms
push r10
subss xmm15, xmm6
push rax
psllq mm5, 0x46
pop rax
rcpss xmm0, xmm4
pop r10
psllq mm2, 7
pop r13
pandn mm4, mm2
pop r11
mov rdx, rsi
mov rcx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x2e4998e2f
mov rax, rbx
lea rdx, [rsp + 0x35]
push r11
inc r11
psllq mm0, 0x62
nop
push r14
dec r14d
movups xmm9, xmm12
emms
push rax
paddsw mm2, mm6
mov r14d, eax
push rcx
pmaddwd mm5, mm0
subss xmm5, xmm3
pop rcx
psrlq mm1, 0x2f
rcl r14d, 0x17
pcmpeqw mm0, mm5
pop rax
subps xmm12, xmm11
emms
pop r14
rol r11d, 3
rcpss xmm8, xmm4
pop r11
xor byte [rax], 0x31
push rdx
ror edx, 5
mov edx, 0xa
shl dx, 0xb
push rcx
rcr cx, 1
emms
push r15
dec r15d
pop r15
comiss xmm14, xmm3
xadd rcx, rdx
pop rcx
ucomiss xmm9, xmm2
nop
nop
pop rdx
inc rax
cmp rax, rdx
jne 0x2e4998db4
jmp 0x2e4998e91
mov rax, rsi
lea rdx, [rsp + 0x3c]
push rdx
mov rdx, 2
push r13
pop r13
dec rdx
jne 0x2e4998e3f
pop rdx
xor byte [rax], 0x95
cmp dl, r15b
jne 0x2e4998e69
push rax
dec rax
push r15
subss xmm6, xmm8
maxss xmm0, xmm10
pop r15
paddsb mm6, mm7
pop rax
jmp 0x2e4998e7a
push rcx
packssdw mm0, mm1
push r8
paddsb mm6, mm0
and r8, rcx
pop r8
emms
pop rcx
push r12
emms
push rdx
dec r12d
nop
pop rdx
punpcklbw mm0, mm7
pop r12
inc rax
cmp rax, rdx
jne 0x2e4998e37
push r15
shl r15b, 7
andps xmm1, xmm0
sub r15w, 0x11
dec r15
push r9
xadd r9w, r15w
paddsb mm3, mm7
psrad mm4, 0x38
push r14
dec r9d
nop
push rdx
xor r15b, r9b
pop rdx
nop
inc r14
pop r14
paddusw mm4, mm0
xadd r9, r15
emms
pop r9
inc r15
emms
psrld mm1, 0x37
psrad mm6, 0xa
pop r15
jmp 0x2e4998f55
push r11
psraw mm3, 0x4a
nop
addps xmm14, xmm0
emms
push r13
nop
dec r13
shr r13b, 0x13
push rdx
pcmpgtw mm5, mm1
psadbw mm6, mm7
push rbx
pmaddwd mm4, mm0
pop rbx
sar dl, 0x16
not r11d
pop rdx
cmp r11w, r13w
ror r11b, 0x17
movhlps xmm12, xmm14
pop r13
psllq mm3, 0x4e
nop
psraw mm1, 0x6a
sub r11w, 2
pop r11
push r9
nop
pmulhuw mm7, mm3
mov r9b, 7
neg r9b
push rbx
punpcklwd mm3, mm7
not rbx
psllq mm6, 1
nop
pop rbx
dec r9d
dec r9d
neg r9
rcpss xmm9, xmm2
pop r9
push r8
pmaxsw mm0, mm2
pop r8
xor eax, eax
add rsp, 0x88
pop rbx
pop rsi
ret