Function at 0x140189884
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x20], rdi
push rbp
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
movsxd rdi, edx
or rsi, 0xffffffffffffffff
movaps xmmword [rax - 0x28], xmm6
mov rbx, rcx
movaps xmmword [rax - 0x38], xmm7
cmp edi, esi
jne 0x140189902
call fcn.140153024
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x1401898f4
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x1401898ef
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140189bf3
mov rcx, r8
call fcn.1403cad84
xor edi, edi
mov byte [rbx], dil
mov qword [rbx + 0x10], rdi
jmp 0x140189bc7
call fcn.140140f70
imul r14, rdi, 0x518
mov rax, qword [rax + 0x38]
xor edi, edi
mov r15d, 0x42d0
cmp byte [r14 + rax + 0x50c], dil
jne 0x14018997a
call fcn.140140f70
lea rcx, [r15 + rax]
call fcn.140182638
test al, al
jne 0x14018997a
call fcn.140153024
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x1401898f6
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x140189970
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140189bf3
mov rcx, r8
call fcn.1403cad84
jmp 0x1401898f6
xor eax, eax
mov dword [rbp + 0x30], 0x6d676c20
mov byte [rbp + 0x36], al
mov ecx, edi
mov word [rbp + 0x34], 0x2b71
movsxd rax, ecx
xor byte [rbp + rax + 0x30], cl
inc ecx
cmp ecx, 6
jb 0x14018998e
mov byte [rbp + 0x36], dil
lea rax, [rbp + 0x30]
inc rsi
cmp byte [rax + rsi], dil
jne 0x1401899a4
mov r8, rsi
lea rdx, [rbp + 0x30]
mov rcx, rbx
call fcn.140194e18
cmp qword [rbx + 0x18], 0x10
mov rcx, rbx
jb 0x1401899c9
mov rcx, qword [rbx]
call fcn.14016a8e4
call fcn.14016cc4c
call fcn.140140f70
lea rcx, [r15 + rax]
call fcn.140182638
mov r15d, 0x7f89
test al, al
je 0x140189ab2
mov dword [rbp - 0x50], 0x626c604d
mov ecx, edi
mov dword [rbp - 0x4c], 0x27266063
mov dword [rbp - 0x48], 0x2a2928
movsxd rax, ecx
xor byte [rbp + rax - 0x50], cl
inc ecx
cmp ecx, 0xb
jb 0x140189a06
mov rax, qword [0x140548838]
mov byte [rbp - 0x45], dil
movdqu xmm7, xmmword [rax + 0x3b74]
movdqu xmm6, xmmword [rax + 0x39d4]
call fcn.14014142c
mov rcx, rax
call fcn.14013fb04
lea rdx, [rbp - 0x50]
mov rsi, rax
lea rcx, [rbp - 0x3c]
movups xmm0, xmmword [rax + 0xea4]
movdqu xmmword [rbp - 0x3c], xmm0
call fcn.14016a960
xor ecx, ecx
call fcn.140146f68
test al, al
je 0x140189aaa
mov rdx, r15
xor ecx, ecx
movdqu xmmword [rsi + 0xea4], xmm7
call qword [sym.imp.user32.dll_LoadCursorW]
mov rcx, rax
call qword [sym.imp.user32.dll_SetCursor]
mov rax, qword [0x140548838]
cmp byte [rax + 0x3868], dil
je 0x140189ab2
call fcn.140153024
call fcn.14014142c
mov rcx, rax
call fcn.14013fb04
mov byte [rax + 0xb42], 1
jmp 0x140189ab2
movdqu xmmword [rsi + 0xea4], xmm6
call fcn.140140f70
mov rax, qword [rax + 0x38]
cmp byte [r14 + rax + 0x50c], dil
je 0x140189b8a
movdqa xmm0, xmmword [0x1404cf1f0]
mov ecx, edi
movdqu xmmword [rbp - 0x50], xmm0
mov word [rbp - 0x40], 0x30
movsxd rax, ecx
xor byte [rbp + rax - 0x50], cl
inc ecx
cmp ecx, 0x11
jb 0x140189ade
mov rax, qword [0x140548838]
mov byte [rbp - 0x3f], dil
movdqu xmm7, xmmword [rax + 0x3b74]
movdqu xmm6, xmmword [rax + 0x39d4]
call fcn.14014142c
mov rcx, rax
call fcn.14013fb04
lea rdx, [rbp - 0x50]
mov rsi, rax
lea rcx, [rbp - 0x3c]
movups xmm0, xmmword [rax + 0xeb4]
movdqu xmmword [rbp - 0x3c], xmm0
call fcn.14016a960
xor ecx, ecx
call fcn.140146f68
test al, al
je 0x140189b82
mov rdx, r15
xor ecx, ecx
movdqu xmmword [rsi + 0xeb4], xmm7
call qword [sym.imp.user32.dll_LoadCursorW]
mov rcx, rax
call qword [sym.imp.user32.dll_SetCursor]
mov rax, qword [0x140548838]
cmp byte [rax + 0x3868], dil
je 0x140189b8a
call fcn.140153024
call fcn.14014142c
mov rcx, rax
call fcn.14013fb04
mov byte [rax + 0xd9b], 1
jmp 0x140189b8a
movdqu xmmword [rsi + 0xeb4], xmm6
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x140189bc0
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x140189bbb
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140189bf3
mov rcx, r8
call fcn.1403cad84
mov qword [rbx + 0x10], rdi
mov byte [rbx], dil
mov qword [rbx + 0x18], 0xf
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x38]
movaps xmm6, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x50]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
call fcn.1403d7020
int3