Function at 0x14017c7e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x100
mov rax, qword [0x140672360]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov r13, r8
mov qword [rsp + 0x30], r8
mov r14, rdx
mov r15, rcx
mov rax, qword [rcx + 0x20]
cmp qword [rcx + 0x18], rax
je 0x14017cacf
mov rax, qword [rdx]
mov rcx, qword [rdx + 8]
sub rcx, rax
cmp rcx, r8
jb 0x14017cadc
lea rdi, [rax + r8]
mov qword [rsp + 0x38], rdi
sub rcx, r8
mov rsi, qword [r15 + 0x30]
lea rax, [rsi + 1]
cmp rcx, rax
jb 0x14017cb06
xor edx, edx
mov rax, rcx
div rsi
test rdx, rdx
jne 0x14017c8d0
lfence
mov rdx, r14
mov rcx, r15
call fcn.1401615a0
xor edi, edi
test rsi, rsi
je 0x14017c8a5
lea r9, [rsi + rsi]
nop dword [rax + rax]
mov r8, qword [r14 + 8]
mov rdx, r8
sub rdx, r9
sub r8, rsi
movzx ecx, byte [r8 + rdi]
movzx eax, byte [rdx + rdi]
mov byte [r8 + rdi], al
mov byte [rdx + rdi], cl
inc rdi
cmp rdi, rsi
jne 0x14017c880
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.140359070
mov rbx, qword [rsp + 0x158]
add rsp, 0x100
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rbx, rcx
sub rbx, rdx
sub rbx, rsi
mov rbp, rcx
sub rbp, rbx
cmp rbp, rsi
jbe 0x14017caa5
lea rax, [rsi + rsi]
cmp rbp, rax
jae 0x14017caa5
xorps xmm0, xmm0
add rcx, rdi
mov qword [rsp + 0x40], rcx
lea rax, [rbx + rdi]
movdqu xmmword [rsp + 0xd8], xmm0
xor edi, edi
mov qword [rsp + 0xe8], rdi
mov r12, rcx
sub r12, rax
je 0x14017c990
movabs rax, 0x7fffffffffffffff
cmp r12, rax
ja 0x14017cb4e
lfence
lea edx, [rdi + 1]
mov rcx, r12
call fcn.140371340
mov r13, rax
test rax, rax
je 0x14017ca89
lfence
mov qword [rsp + 0xd8], rax
add rax, r12
mov qword [rsp + 0xe8], rax
mov r8, r12
mov r12, qword [rsp + 0x38]
add r12, rbx
mov rdx, r12
mov rcx, r13
call fcn.14035bc80
sub r13, r12
mov rax, qword [rsp + 0x40]
add rax, r13
mov qword [rsp + 0xe0], rax
mov r13, qword [rsp + 0x30]
lfence
lea rdx, [rbx + r13]
mov rcx, r14
call fcn.1401c4050
mov r8, r13
mov rdx, r14
mov rcx, r15
call fcn.1401615a0
mov r8, rsi
mov rdx, qword [r15 + 0x18]
mov rbx, qword [rsp + 0xd8]
mov rcx, rbx
call fcn.1401606d0
mov rcx, qword [r15 + 8]
mov rax, qword [rcx]
mov r9d, 1
mov r8, rbx
mov rdx, rbx
mov rax, qword [rax + 0x40]
call qword [case.0x1401cd220.0]
sub rbp, rsi
je 0x14017ca1a
nop word [rax + rax]
mov rcx, qword [rsp + 0xd8]
add rcx, rdi
movzx eax, byte [rcx + rsi]
xor byte [rcx], al
mov rcx, qword [rsp + 0xd8]
add rcx, rdi
movzx eax, byte [rcx]
xor byte [rcx + rsi], al
inc rdi
cmp rdi, rbp
jne 0x14017c9f0
mov rcx, qword [r15 + 8]
mov rax, qword [rcx]
mov r9d, 1
mov rdx, qword [rsp + 0xd8]
mov r8, rdx
mov rax, qword [rax + 0x40]
call qword [case.0x1401cd220.0]
mov rdx, qword [r14 + 8]
mov r9, qword [rsp + 0xe0]
mov r8, qword [rsp + 0xd8]
mov rcx, r14
call fcn.1401c8fa0
nop
mov rdx, qword [rsp + 0xd8]
test rdx, rdx
je 0x14017c8a5
mov rcx, qword [rsp + 0xe8]
sub rcx, rdx
mov rdi, rdx
xor eax, eax
rep stosb byte [rdi], al
mov rcx, rdx
call fcn.1403683a0
jmp 0x14017c8a5
lea rcx, [rsp + 0x48]
call fcn.140160250
lea rdx, [0x140669ad8]
lea rcx, [rsp + 0x48]
call fcn.14035c4f0
int3
mov dword [rsp + 0x20], 0x2790
lea r9, str.C:workspaceproductswindows_endpointprotectionhmpa_thirdparty_botanlib_botan_x64.cpp
lea r8, str.finish
lea rdx, str.Left_over_size_in_expected_range
lea rcx, str.final_bytes___BS__final_bytes___2BS
call fcn.1401bfc50
int3
lea rdx, str.finish
call fcn.1401bfb90
int3
mov dword [rsp + 0x20], 0x277b
lea r9, str.C:workspaceproductswindows_endpointprotectionhmpa_thirdparty_botanlib_botan_x64.cpp
lea r8, str.finish
lea rdx, str.Offset_is_sane
lea rcx, str.buffer.size_____offset
call fcn.1401bfc50
int3
lea rdx, [rsp + 0x98]
mov rcx, r15
call fcn.14017c0e0
nop
lea r8, str.:_insufficient_data_to_encrypt
mov rdx, rax
lea rcx, [rsp + 0xb8]
call fcn.1400b8130
nop
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.1401c1860
lea rdx, [0x140669298]
lea rcx, [rsp + 0x60]
call fcn.14035c4f0
nop
call fcn.1400710c0
int3