Function at 0x1400866b6
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x48
lea rbp, [rsp + 0x40]
mov qword [rbp - 0x38], r8
mov qword [rbp - 0x30], rdx
mov r13, rcx
mov eax, 0x20
call fcn.140074a70
sub rsp, rax
mov r15, rsp
mov eax, 0x40
call fcn.140074a70
sub rsp, rax
mov rbx, rsp
mov rdi, qword [rcx + 0x18]
cmp rdi, 0xffffffffffffffff
je 0x140086e4b
mov r12, qword [r13 + 8]
movabs rax, 0x2a0669bd57031a62
lea rcx, [rax + 8]
xor rcx, rax
movabs rax, 0x798bda5a0598a67e
lea r8, [rax + 1]
xor r8, rax
add r8, r12
mov rax, r8
shr rax, 3
movabs rdx, 0xe2105445e2538c61
lea rsi, [rdx + 5]
xor rsi, rdx
imul rsi, rax
cmp r12, rcx
cmovb rsi, r12
mov rax, rsi
shr rax, 1
cmp rdi, rax
jae 0x1400867ee
mov rcx, r8
shr rcx, 4
xor eax, eax
test r8b, 0xf
setne al
mov r15, qword [r13]
add rax, rcx
je 0x1400867af
movabs r9, 0x2bd27f95a2e22cab
xor ecx, ecx
lea rdx, [r9 + 0x10]
xor rdx, r9
movdqa xmm0, xmmword [0x14008b650]
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [r15 + rcx]
por xmm1, xmm0
movdqa xmmword [r15 + rcx], xmm1
add rcx, rdx
dec rax
jne 0x140086793
movabs rax, 0xdbd8de6576da5660
lea rcx, [rax + 0x10]
xor rcx, rax
cmp r8, rcx
jae 0x140086876
lea rcx, [r15 + 0x10]
sub rsp, 0x20
mov rdx, r15
call fcn.140084cc0
add rsp, 0x20
cmp r12, 0xffffffffffffffff
jne 0x140086881
xor eax, eax
jmp 0x140086ad4
movabs rax, 0xeaa780dce5976c66
lea rcx, [rax + 1]
xor rcx, rax
add rcx, rdi
movabs rax, 0x91288a66adfecc2e
lea rdx, [rax + 1]
xor rdx, rax
add rsi, rdx
cmp rcx, rsi
cmova rsi, rcx
movabs rax, 0x790033be72738032
lea rcx, [rax + 8]
xor rcx, rax
cmp rsi, rcx
jae 0x140086aea
movabs rax, 0x6be99f57c6356909
lea rcx, [rax + 4]
xor rcx, rax
movabs rax, 0xb4a93dd142ae43a9
lea rdx, [rax + 4]
xor rdx, rax
movabs rax, 0x8db4b16c6846e473
lea r8, [rax + 8]
xor r8, rax
cmp rsi, rcx
cmovb r8, rdx
jmp 0x140086b3b
movdqu xmm0, xmmword [r15]
movdqu xmmword [r15 + r8], xmm0
mov qword [rbp - 0x18], rsi
mov qword [rbp - 0x20], rdi
mov qword [rbp - 0x28], r13
movabs rax, 0xf8ac9a043ad623dd
movabs r13, 0xed606ce684b82010
movabs r14, 0xb3c3174906923226
movabs rcx, 0x7b2ec37e2d2250e8
movabs rdi, 0x488d447936a91a4b
lea rdx, [rcx + 1]
xor rdx, rcx
lea rcx, [rax + 0x10]
xor rcx, rax
mov qword [rbp - 8], rcx
xor r10d, r10d
mov qword [rbp - 0x10], rdx
cmp byte [r15 + r10], 0x80
jne 0x140086ab8
mov rsi, r10
not rsi
imul rsi, qword [rbp - 8]
add rsi, r15
mov qword [rbp], r10
mov rax, r10
neg rax
lea rbx, [rax + rax*2]
shl rbx, 4
add rbx, r15
mov r8, qword [rbx - 0x28]
mov r9, qword [rbx - 0x20]
sub rsp, 0x20
mov rcx, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x38]
call fcn.140003af3
add rsp, 0x20
mov rcx, r12
and rcx, rax
movdqu xmm0, xmmword [r15 + rcx]
pmovmskb r8d, xmm0
mov rdx, rcx
test r8d, r8d
jne 0x140086962
mov rdx, rcx
xor r9d, r9d
lea r8, [rdi + 0x10]
xor r8, rdi
add r9, r8
add rdx, r9
and rdx, r12
movdqu xmm0, xmmword [r15 + rdx]
pmovmskb r8d, xmm0
test r8d, r8d
je 0x140086942
bsf r8d, r8d
add r8, rdx
and r8, r12
cmp byte [r15 + r8], 0
mov r10, qword [rbp]
js 0x140086984
movdqa xmm0, xmmword [r15]
pmovmskb edx, xmm0
bsf r8d, edx
mov rdx, r10
sub rdx, rcx
mov r9, r8
sub r9, rcx
xor r9, rdx
and r9, r12
movabs rdx, 0x61c49d8941dfa488
lea rcx, [rdx + 0x10]
xor rcx, rdx
cmp r9, rcx
jb 0x140086a3a
mov rcx, r8
not rcx
movabs r9, 0xc2d6a15da3af7098
lea rdx, [r9 + 0x10]
xor rdx, r9
imul rdx, rcx
add rdx, r15
mov r9b, byte [r15 + r8]
movabs r10, 0x52c2c58bbc69a588
lea ecx, [r10 + 0x29]
xor ecx, r10d
shr rax, cl
lea rcx, [r8 - 0x10]
and rcx, r12
movabs r11, 0xb0c607cbc765d32e
lea r10, [r11 + 0x10]
xor r10, r11
add r10, rcx
mov byte [r15 + r8], al
mov byte [r15 + r10], al
cmp r9b, 0xff
je 0x140086a71
xor eax, eax
mov cl, byte [rsi + rax]
mov r8b, byte [rdx + rax]
mov byte [rsi + rax], r8b
mov byte [rdx + rax], cl
lea rcx, [r14 + 1]
xor rcx, r14
add rax, rcx
lea rcx, [r13 + 0x10]
xor rcx, r13
cmp rax, rcx
jne 0x140086a11
jmp 0x140086906
movabs rdx, 0xb73f2047bb684ec8
lea ecx, [rdx + 0x29]
xor ecx, edx
shr rax, cl
lea rcx, [r10 - 0x10]
and rcx, r12
movabs r8, 0x7e920b28e6d1f48a
lea rdx, [r8 + 0x10]
xor rdx, r8
add rdx, rcx
mov byte [r15 + r10], al
mov byte [r15 + rdx], al
jmp 0x140086ab4
mov r10, qword [rbp]
lea rax, [r10 - 0x10]
and rax, r12
movabs r8, 0x192b32124673eccf
lea rcx, [r8 + 0x10]
xor rcx, r8
add rcx, rax
mov al, 0xff
mov byte [r15 + r10], al
mov byte [r15 + rcx], al
movdqu xmm0, xmmword [rsi]
movdqu xmm1, xmmword [rsi + 0x10]
movups xmm2, xmmword [rsi + 0x20]
movups xmmword [rdx + 0x20], xmm2
movdqu xmmword [rdx + 0x10], xmm1
movdqu xmmword [rdx], xmm0
mov rdx, qword [rbp - 0x10]
lea rax, [r10 + rdx]
cmp r10, r12
mov r10, rax
jne 0x1400868d8
mov r13, qword [rbp - 0x28]
mov rdi, qword [rbp - 0x20]
mov rax, qword [rbp - 0x18]
movabs r15, 0x8000000000000001
sub rax, rdi
mov qword [r13 + 0x10], rax
jmp 0x140086e37
mov rax, rsi
shr rax, 0x3d
jne 0x140086e4b
shl rsi, 3
movabs rax, 0xe5a89d42f1780c88
lea rcx, [rax + 7]
xor rcx, rax
mov rax, rsi
xor edx, edx
div rcx
dec rax
bsr rcx, rax
not ecx
mov rax, 0xffffffffffffffff
shr rax, cl
movabs rcx, 0x66867dbb79c9b38
lea r8, [rcx + 1]
xor r8, rcx
add r8, rax
movabs rax, 0x3529363079700bdd
lea rdx, [rax + 0x10]
xor rdx, rax
sub rsp, 0x20
mov rcx, r15
call fcn.14003da45
add rsp, 0x20
mov r14, qword [r15]
mov rax, r15
mov r15, qword [r15 + 8]
test r14, r14
je 0x140086e37
mov r12, qword [rax + 0x10]
mov rsi, qword [rax + 0x18]
movabs rax, 0xac348d4f0decf7a5
lea r8, [rax + 0xf]
xor r8, rax
add r8, r15
sub rsp, 0x20
mov rcx, r14
mov dl, 0xff
call fcn.140085360
add rsp, 0x20
movabs rax, 0xf7bf76d7023088e5
lea rcx, [rax + 0x10]
xor rcx, rax
mov qword [rbx + 0x10], rcx
mov qword [rbx + 0x18], r14
mov qword [rbx + 0x20], r15
mov qword [rbx + 0x28], r12
mov qword [rbx + 0x30], rsi
test rdi, rdi
jne 0x140086bce
xor eax, eax
jmp 0x140086d86
mov qword [rbp - 0x40], r12
mov qword [rbp - 0x18], rbx
mov rax, rdi
movabs rdi, 0x9a0148c4dec44508
movabs rbx, 0x8b1ae26d457e5002
mov qword [rbp - 0x28], r13
mov r10, qword [r13]
movdqa xmm0, xmmword [r10]
pmovmskb r13d, xmm0
not r13d
xor r12d, r12d
mov qword [rbp - 0x20], rax
mov r11, rax
mov rsi, r10
mov qword [rbp - 8], r10
mov qword [rbp], r11
test r13w, r13w
jne 0x140086c41
movdqa xmm0, xmmword [rsi + 0x10]
add rsi, 0x10
pmovmskb r13d, xmm0
lea rax, [rbx + 0x10]
xor rax, rbx
add r12, rax
cmp r13d, 0xffff
je 0x140086c1d
not r13d
bsf eax, r13d
add rax, r12
mov qword [rbp - 0x10], rax
neg rax
lea rax, [rax + rax*2]
shl rax, 4
mov r8, qword [r10 + rax - 0x28]
mov r9, qword [r10 + rax - 0x20]
sub rsp, 0x20
mov rcx, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x38]
call fcn.140003af3
add rsp, 0x20
mov rcx, rax
and rcx, r15
movdqu xmm0, xmmword [r14 + rcx]
pmovmskb edx, xmm0
test edx, edx
jne 0x140086cab
xor r8d, r8d
lea rdx, [rdi + 0x10]
xor rdx, rdi
add r8, rdx
add rcx, r8
and rcx, r15
movdqu xmm0, xmmword [r14 + rcx]
pmovmskb edx, xmm0
test edx, edx
je 0x140086c8d
mov r10, qword [rbp - 8]
mov r11, qword [rbp]
bsf edx, edx
add rdx, rcx
and rdx, r15
cmp byte [r14 + rdx], 0
js 0x140086ccf
movdqa xmm0, xmmword [r14]
pmovmskb ecx, xmm0
bsf edx, ecx
lea rcx, [rdx - 0x10]
and rcx, r15
movabs r9, 0xeeeb75aa82ea1a6a
lea r8, [r9 + 0x10]
xor r8, r9
add r8, rcx
movabs r9, 0x7cd6e010efbba8c9
lea ecx, [r9 + 0x27]
xor ecx, r9d
shr rax, cl
mov byte [r14 + rdx], al
mov byte [r14 + r8], al
lea eax, [r13 - 1]
and eax, r13d
mov r9, qword [rbp - 0x10]
not r9
movabs r8, 0x30ce0e214b468a04
lea rcx, [r8 + 0x30]
xor rcx, r8
imul rcx, r9
not rdx
movabs r9, 0x4daa620a5fdf00d8
lea r8, [r9 + 0x10]
xor r8, r9
imul r8, rdx
movdqu xmm0, xmmword [r10 + rcx]
movdqu xmm1, xmmword [r10 + rcx + 0x10]
movups xmm2, xmmword [r10 + rcx + 0x20]
movups xmmword [r14 + r8 + 0x20], xmm2
movdqu xmmword [r14 + r8 + 0x10], xmm1
movdqu xmmword [r14 + r8], xmm0
dec r11
mov r13d, eax
test r11, r11
jne 0x140086c13
mov r13, qword [rbp - 0x28]
mov rax, qword [rbp - 0x20]
mov rbx, qword [rbp - 0x18]
mov r12, qword [rbp - 0x40]
movabs rdx, 0x8de06df34f3b66b0
movabs r8, 0x2ca617d65ae4e619
sub r12, rax
mov qword [rbx + 0x28], r12
mov qword [rbx + 0x30], rax
xor eax, eax
lea rcx, [rdx + 1]
xor rcx, rdx
lea rdx, [r8 + 4]
xor rdx, r8
mov r8, qword [r13 + rax*8]
mov r9, qword [rbx + rax*8 + 0x18]
mov qword [r13 + rax*8], r9
mov qword [rbx + rax*8 + 0x18], r8
add rax, rcx
cmp rax, rdx
jne 0x140086db5
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x140086e2d
movabs rdx, 0x8399dfff87ff4166
lea rax, [rdx + 1]
xor rax, rdx
add rax, rcx
mov edx, 0x30
mul rdx
movabs rdx, 0xedb77317252822cb
lea r8, [rdx + 0xf]
xor r8, rdx
add r8, rcx
add r8, rax
je 0x140086e2d
mov r8, qword [rbx + 0x18]
sub r8, rax
mov rcx, qword [0x1400a5b60]
sub rsp, 0x20
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
add rsp, 0x20
movabs r15, 0x8000000000000001
mov rax, r15
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
ud2