Function at 0x14005e4b0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x10], 0xfffffffffffffffe
mov qword [rbp - 0x40], r8
mov rbx, qword [rcx + 0x18]
add rdx, rbx
jae 0x14005e4ec
mov cl, 1
call fcn.14003f9c0
jmp 0x14005ee20
mov rsi, rcx
mov rcx, qword [rcx + 8]
mov rax, rcx
mov qword [rbp + 8], rcx
cmp rcx, 8
jb 0x14005e57e
mov rax, qword [rbp + 8]
lea r8, [rax + 1]
shr r8, 3
mov rax, r8
not rax
or rax, 7
lea rcx, [r8 + rax]
inc rcx
mov rax, r8
xor rax, 7
add rax, r8
and r8, 0xfffffffffffffff8
mov r9, rcx
not r9
mov r10, r8
and r10, r9
mov r11, rcx
sub rax, r8
mov rdi, rax
not rdi
and rdi, rcx
and r9, rax
mov r14, rax
and r14, rcx
or rax, rcx
xor rcx, 7
mov r15, r8
not r15
and r15, rcx
imul r15, r10
and r11, r8
or rcx, r8
imul rcx, r11
add rcx, r15
imul r9, rdi
imul rax, r14
add rax, r9
add rax, rcx
mov rcx, rax
shr rcx, 1
cmp rdx, rcx
jbe 0x14005e80f
inc rax
cmp rdx, rax
cmova rax, rdx
lea rcx, [rbp - 0x60]
mov rdx, rax
mov r8b, 1
call fcn.14000efc0
mov r14, qword [rbp - 0x60]
test r14, r14
je 0x14005ee34
mov r15, qword [rbp - 0x58]
mov rax, qword [rbp - 0x50]
mov rcx, rbx
not rcx
and rcx, rax
xor rax, rbx
add rcx, rcx
sub rcx, rax
mov qword [rbp - 0x30], r14
mov qword [rbp - 0x28], r15
mov qword [rbp - 0x20], rcx
mov qword [rbp - 0x18], rbx
mov qword [rbp - 0x10], 0x38
mov qword [rbp - 8], 0x10
mov rdi, qword [rbp + 8]
lea rax, [rdi + rdi]
mov rcx, rax
xor rcx, 0xfffffffffffffffd
or rax, 2
and rax, rcx
xor rdi, 1
add rdi, rax
je 0x14005e93e
mov rbx, qword [rsi]
lea rax, [rbx - 0x38]
mov qword [rbp + 8], rax
xor r13d, r13d
jmp 0x14005e77f
shr rax, 0x39
mov edx, 0xf
sub rdx, rcx
or rdx, r15
add rdx, rcx
add rdx, 0xfffffffffffffff1
mov r8d, edx
and r8d, 0x10
xor rdx, 0x10
lea rdx, [rdx + r8*2]
mov byte [r14 + rcx], al
mov byte [r14 + rdx], al
lea rax, [r13 - 0x3f]
or rax, 0x38
sub rax, r13
add rax, 0x3f
mov edx, 0x3e
sub edx, r13d
or rdx, 0xffffffffffffffc7
add rdx, r13
add rdx, 2
mov r8, rdx
not r8
and r8, rax
mov r9, rax
not r9
and r9, rdx
imul r9, r8
mov r8, rdx
and r8, rax
or rax, rdx
imul rax, r8
mov edx, r12d
and edx, 0x38
mov r8, r12
or r8, 0x38
imul r8, rdx
add r8, rax
add r8, r9
mov rax, rbx
sub rax, r8
lea r8, [rcx + 1]
mov r9, r8
and r9, 0xffffffffffffffc7
mov rdx, r8
or rdx, 0xffffffffffffffc7
mov r10, 0xfffffffffffffffe
sub r10, rdx
inc rdx
and r10, r9
mov r11, r9
not r11
and r11, rdx
imul r11, r10
mov r10, rdx
and r10, r9
or rdx, r9
imul rdx, r10
add rdx, r11
mov r10, r8
xor r10, 0xffffffffffffffc7
mov r9, r8
or r9, 0x38
and r9, r10
and r8d, 0x38
mov r10, r8
not r10
add r10, rcx
add r10, 0x3a
add rcx, 0x3a
sub r8, rcx
and r8, r9
mov rcx, r9
not rcx
and rcx, r10
imul rcx, r8
mov r8, r10
and r8, r9
or r9, r10
imul r9, r8
add r9, rcx
sub rdx, r9
mov rcx, qword [rax + 0x30]
mov qword [r14 + rdx + 0x30], rcx
movdqu xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movdqu xmm2, xmmword [rax + 0x20]
movdqu xmmword [r14 + rdx + 0x20], xmm2
movups xmmword [r14 + rdx + 0x10], xmm1
movdqu xmmword [r14 + rdx], xmm0
mov r13, r12
cmp r12, rdi
je 0x14005e93e
lea r12, [r13 + 1]
cmp byte [rbx + r13], 0
js 0x14005e773
mov rax, r13
neg rax
imul rdx, rax, 0x38
add rdx, qword [rbp + 8]
mov rcx, qword [rbp - 0x40]
call fcn.140017250
mov rcx, rax
not rcx
or rcx, r15
lea r8, [rax + rcx]
lea rdx, [rax + rcx]
inc rdx
movdqu xmm0, xmmword [r14 + r8 + 1]
pmovmskb ecx, xmm0
test ecx, ecx
jne 0x14005e7e8
mov r8d, 0x10
nop word [rax + rax]
add rdx, r8
and rdx, r15
movdqu xmm0, xmmword [r14 + rdx]
pmovmskb ecx, xmm0
add r8, 0x10
test ecx, ecx
je 0x14005e7d0
tzcnt ecx, ecx
add rcx, rdx
and rcx, r15
cmp byte [r14 + rcx], 0
js 0x14005e630
movdqa xmm0, xmmword [r14]
pmovmskb ecx, xmm0
tzcnt ecx, ecx
jmp 0x14005e630
mov rdx, qword [rsi]
mov rax, qword [rbp + 8]
lea r8, [rax + 1]
mov rcx, r8
shr rcx, 4
mov r9, r8
xor r9, 0xfffffffffffffff0
mov r10, r8
or r10, 0xf
xor eax, eax
test r10, r9
setne al
mov r9d, eax
and r9d, ecx
add r9, r9
xor rax, rcx
add rax, r9
je 0x14005e8b3
movdqa xmm0, xmmword [0x140075980]
pcmpeqd xmm1, xmm1
movdqa xmm2, xmmword [0x140075990]
mov rcx, rdx
mov r9, rax
nop word cs:[rax + rax]
movdqa xmm3, xmmword [rcx]
pxor xmm4, xmm4
pcmpgtb xmm4, xmm3
pand xmm3, xmm0
pxor xmm3, xmm1
paddq xmm3, xmm4
paddq xmm3, xmm2
movdqa xmmword [rcx], xmm3
xor r9, 0xfffffffffffffffe
mov r10, rax
add r9, rax
and eax, 1
and r10, 0xfffffffffffffffe
sub r9, rax
add r9, r10
add rcx, 0x10
inc r9
mov rax, r9
jne 0x14005e870
cmp r8, 0x10
jae 0x14005e9e1
lea rcx, [rdx + 0x10]
movabs rax, 0x7ffffffffffffffe
mov rdi, qword [rbp + 8]
sub rax, rdi
movabs r9, 0xbb604245740745f2
and r9, r8
movabs r10, 0x449fbdba8bf8ba0c
and rax, r10
or rax, r9
xor rax, r10
xor r9d, r9d
test r8b, 1
cmovne rax, r9
or r8, 1
test dil, 1
cmovne r8, r9
add r8, rax
call fcn.14005d920
lea rax, [0x14000edd0]
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], 0x38
mov qword [rbp - 0x30], rsi
cmp rdi, 0xffffffffffffffff
jne 0x14005ea02
mov rax, 0xffffffffffffffff
jmp 0x14005ed86
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movaps xmmword [rbp - 0x50], xmm1
movaps xmmword [rbp - 0x60], xmm0
mov rax, qword [rbp - 0x30]
mov rcx, qword [rbp - 0x28]
mov rdx, qword [rbp - 0x20]
mov qword [rsi + 0x10], rdx
mov rdx, qword [rbp - 0x18]
mov qword [rsi + 0x18], rdx
mov qword [rsi], rax
mov qword [rsi + 8], rcx
movdqa xmm0, xmmword [rbp - 0x60]
movdqa xmm1, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x20], xmm1
movdqa xmmword [rbp - 0x30], xmm0
mov r8, qword [rbp - 0x28]
test r8, r8
je 0x14005ee16
lea rcx, [r8 + 1]
mov edx, 0x38
mov rax, rcx
mul rdx
add rax, 0xf
and rax, 0xfffffffffffffff0
mov edx, ecx
and edx, 0x10
mov r9d, 0x1e
sub r9d, r8d
and r9d, 0x10
and rcx, 0xffffffffffffffef
or rcx, r9
lea rdx, [rcx + rdx*2]
add rdx, rax
je 0x14005ee16
mov rcx, qword [rbp - 0x30]
sub rcx, rax
mov r8d, 0x10
call fcn.140018bf0
jmp 0x14005ee16
movdqu xmm0, xmmword [rdx]
movdqu xmmword [rdx + r8], xmm0
lea rax, [0x14000edd0]
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], 0x38
mov qword [rbp - 0x30], rsi
xor r12d, r12d
xor r10d, r10d
jmp 0x14005ea4d
shr rax, 0x39
mov r8, r15
not r8
mov r9d, r8d
and r9d, 0x10
or r8, 0xffffffffffffffef
mov r10, qword [rbp - 0x38]
add r8, r10
sub r8, r9
and rdx, r8
mov byte [rcx + r15], al
mov rcx, qword [rsi]
mov byte [rdx + rcx + 0x10], al
cmp r15, qword [rbp + 8]
not r15
mov r12, r15
je 0x14005ed7c
mov r15, r10
inc r10
mov rax, qword [rsi]
cmp byte [rax + r15], 0x80
jne 0x14005ea3d
mov edx, 0x3e
sub rdx, r15
mov rcx, rdx
xor rcx, 0xffffffffffffffc7
or rdx, 0x38
and rdx, rcx
mov rcx, r10
and rcx, 0xffffffffffffffc7
mov r8, rdx
not r8
and r8, rcx
mov r9, rcx
not r9
and r9, rdx
imul r9, r8
mov r8, rdx
and r8, rcx
or rcx, rdx
imul rcx, r8
add rcx, r9
mov rdx, r10
xor rdx, 0xffffffffffffffc7
mov qword [rbp - 0x38], r10
mov r8, r10
or r8, 0x38
and rdx, r8
imul rdx, r8
mov r8, rcx
and r8, rdx
xor rdx, rcx
lea rcx, [rdx + r8*2]
mov r13, rax
sub r13, rcx
lea rbx, [r13 + 0x38]
jmp 0x14005eb31
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r9]
movups xmmword [r13], xmm1
movups xmmword [r9], xmm0
movups xmm0, xmmword [r13 + 0x10]
movups xmm1, xmmword [r9 + 0x10]
movups xmmword [r13 + 0x10], xmm1
movups xmmword [r9 + 0x10], xmm0
movdqu xmm0, xmmword [r13 + 0x20]
movdqu xmm1, xmmword [r9 + 0x20]
movdqu xmmword [r13 + 0x20], xmm1
movdqu xmmword [r9 + 0x20], xmm0
mov rax, qword [r13 + 0x30]
mov rcx, qword [r9 + 0x30]
mov qword [r13 + 0x30], rcx
mov qword [r9 + 0x30], rax
mov rax, qword [rsi]
imul rcx, r12, 0x38
lea rdx, [rax + rcx]
add rdx, 0xffffffffffffffc8
mov rcx, qword [rbp - 0x40]
call fcn.140017250
mov rcx, qword [rsi]
mov rdx, qword [rsi + 8]
mov r8, rdx
not r8
or r8, rax
lea r9, [rdx + r8]
add r8, rdx
inc r8
movdqu xmm0, xmmword [rcx + r9 + 1]
pmovmskb r11d, xmm0
test r11d, r11d
jne 0x14005ebb6
lea r10, [rcx + 0x11]
mov r14, 0xffffffffffffffff
xor edi, edi
nop
add r14, 0xfffffffffffffff0
mov r9, r14
sub r9, r8
or r9, rdx
add r9, r8
lea r8, [rdi + r9]
add r8, 0x11
movdqu xmm0, xmmword [r10 + r9]
pmovmskb r11d, xmm0
add rdi, 0x10
add r10, 0x10
test r11d, r11d
je 0x14005eb80
sub r9, r14
mov r8, r9
tzcnt r9d, r11d
mov r10, r9
xor r10, r8
and r8d, r9d
lea r8, [r10 + r8*2]
and r8, rdx
cmp byte [rcx + r8], 0
js 0x14005ebe0
movdqa xmm0, xmmword [rcx]
pmovmskb r8d, xmm0
tzcnt r8d, r8d
lea r9, [rax + 1]
mov r10, rax
not r10
or r10, rdx
mov r11, r10
and r11, r9
xor r10, r9
lea r9, [r10 + r11*2]
lea r10, [r9 + r12]
lea r11, [r10 - 1]
mov rdi, r8
not rdi
add rdi, r9
neg r10
xor r10, r11
and r10, rdi
xor r10, r11
mov r9, r10
not r9
or r9, rdx
add r9, r10
inc r9
cmp r9, 0x10
jb 0x14005ea10
lea r10, [r8 + 1]
mov r9d, 0x3e
sub r9d, r8d
mov r11, 0xfffffffffffffffe
sub r11, r8
or r11, 0x38
mov rdi, r10
and rdi, 0xffffffffffffffc7
lea r14, [r8 + r11]
add r14, 2
not r11
or r11, rdi
and r9d, 0x38
imul r9, r11
or r10, 0x38
mov r11, r10
not r11
and r11, r14
mov rdi, r14
not rdi
and rdi, r10
imul rdi, r11
mov r11, r14
and r11, r10
or r10, r14
imul r10, r11
add r10, r9
add r10, rdi
mov r9, rcx
sub r9, r10
movzx r11d, byte [rcx + r8]
shr rax, 0x39
lea rdi, [r8 - 0x10]
and rdi, rdx
mov byte [rcx + r8], al
mov rdx, qword [rsi]
mov byte [rdi + rdx + 0x10], al
cmp r11b, 0xff
je 0x14005ed20
neg r10
lea rax, [rcx + r10]
add rax, 0x38
cmp r13, rax
jae 0x14005eae0
cmp r9, rbx
jae 0x14005eae0
mov eax, 1
nop
movzx ecx, byte [r13 + rax - 1]
movzx edx, byte [r9 + rax - 1]
mov byte [r13 + rax - 1], dl
mov byte [r9 + rax - 1], cl
movzx ecx, byte [r13 + rax]
movzx edx, byte [r9 + rax]
mov byte [r13 + rax], dl
mov byte [r9 + rax], cl
add rax, 2
cmp rax, 0x39
jne 0x14005ece0
jmp 0x14005eb2e
mov eax, 0xf
sub rax, r15
or rax, qword [rsi + 8]
mov rcx, rax
mov r10, qword [rbp - 0x38]
and rcx, r10
xor rax, r10
lea rax, [rax + rcx*2]
mov rcx, qword [rsi]
mov byte [rcx + r15], 0xff
mov rcx, qword [rsi]
mov byte [rcx + rax], 0xff
mov rax, qword [r13 + 0x30]
mov qword [r9 + 0x30], rax
movdqu xmm0, xmmword [r13]
movdqu xmm1, xmmword [r13 + 0x10]
movdqu xmm2, xmmword [r13 + 0x20]
movdqu xmmword [r9 + 0x20], xmm2
movdqu xmmword [r9 + 0x10], xmm1
movdqu xmmword [r9], xmm0
jmp 0x14005ea3d
mov rax, qword [rsi + 8]
cmp rax, 8
jb 0x14005edfc
mov ecx, eax
and ecx, 1
lea rcx, [rax + rcx*2]
mov rax, rcx
shr rax, 3
mov rdx, rax
not rdx
movabs r8, 0x1ffffffffffffff8
or r8, rdx
or rdx, 0xfffffffffffffff8
shr rcx, 2
and ecx, 0xe
lea r9, [rcx + rdx]
add rcx, rdx
add rcx, 0xfffffffffffffff9
not rdx
mov r10d, 6
sub r10, r9
add r8, rax
inc r8
mov r9, r8
not r9
and r9, r10
and rcx, r8
imul rcx, r9
mov r9, r10
and r9, r8
or r10, r8
imul r10, r9
or rax, 7
imul rax, rdx
add rax, rcx
add rax, r10
mov rcx, qword [rsi + 0x18]
mov rdx, rax
not rdx
and rdx, rcx
not rcx
and rcx, rax
sub rcx, rdx
mov qword [rsi + 0x10], rcx
movabs rax, 0x8000000000000001
add rsp, 0x98
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rax, qword [rbp - 0x58]
jmp 0x14005ee20