Function at 0x14017d620
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x17]
sub rsp, 0xe8
mov rax, qword [0x140672360]
xor rax, rsp
mov qword [rbp - 1], rax
mov rdi, r9
mov qword [rsp + 0x38], r9
mov rbx, r8
mov qword [rsp + 0x40], rbx
mov rsi, rdx
mov r12, rcx
mov rax, qword [rbp + 0x7f]
mov qword [rsp + 0x48], rax
mov rax, qword [rcx]
mov rax, qword [rax]
call qword [case.0x1401cd220.0]
mov r14, rax
lea r15, [rdi + 7]
shr r15, 3
lea rcx, [rax*8 + 9]
cmp rdi, rcx
jb 0x14017daa9
lfence
mov rcx, qword [rbx + 8]
sub rcx, qword [rbx]
cmp rcx, rax
jne 0x14017daa9
mov r13, qword [rsi + 8]
mov rsi, qword [rsi]
mov rdi, r13
sub rdi, rsi
cmp rdi, r15
ja 0x14017daa9
cmp rdi, 1
jbe 0x14017daa9
cmp byte [rsi + rdi - 1], 0xbc
jne 0x14017daa9
xor eax, eax
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x49], xmm1
mov qword [rbp - 0x39], rax
cmp rsi, r13
je 0x14017d720
lea edx, [rax + 1]
mov rcx, rdi
call fcn.140371340
mov rbx, rax
test rax, rax
je 0x14017daf5
mov qword [rbp - 0x49], rax
mov qword [rbp - 0x41], rax
add rax, rdi
mov qword [rbp - 0x39], rax
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.14035bc80
sub rbx, rsi
lea rdi, [rbx + r13]
mov qword [rbp - 0x41], rdi
jmp 0x14017d724
mov rdi, qword [rbp - 0x41]
mov rax, rdi
mov rbx, qword [rbp - 0x49]
sub rax, rbx
cmp rax, r15
jae 0x14017d8a9
xor eax, eax
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x31], xmm1
mov qword [rbp - 0x21], rax
test r15, r15
je 0x14017d788
lfence
lea edx, [rax + 1]
mov rcx, r15
call fcn.140371340
test rax, rax
je 0x14017db11
mov qword [rbp - 0x31], rax
lea rsi, [rax + r15]
mov qword [rbp - 0x21], rsi
mov r8, r15
xor edx, edx
mov rcx, rax
call fcn.14035c350
mov qword [rbp - 0x29], rsi
mov rdi, qword [rbp - 0x41]
mov rbx, qword [rbp - 0x49]
jmp 0x14017d78c
mov rsi, qword [rbp - 0x29]
sub rdi, rbx
mov rcx, r15
sub rcx, rdi
mov rax, rsi
mov r13, qword [rbp - 0x31]
sub rax, r13
cmp rcx, rax
ja 0x14017db2b
sub rax, rcx
cmp rax, rdi
cmovb rdi, rax
test rdi, rdi
je 0x14017d7e3
add rcx, r13
test rbx, rbx
je 0x14017dacb
test rcx, rcx
je 0x14017dacb
mov r8, rdi
mov rdx, rbx
call fcn.14035bc80
mov rbx, qword [rbp - 0x49]
mov rsi, qword [rbp - 0x29]
mov r13, qword [rbp - 0x31]
sub rsi, r13
mov rcx, qword [rbp - 0x39]
sub rcx, rbx
cmp rsi, rcx
jbe 0x14017d85c
movabs rbx, 0x7fffffffffffffff
cmp rsi, rbx
ja 0x14017db55
lfence
mov rdx, rcx
shr rdx, 1
mov rax, rbx
sub rax, rdx
cmp rcx, rax
ja 0x14017d824
lea rbx, [rdx + rcx]
cmp rbx, rsi
cmovb rbx, rsi
mov rdx, qword [rbp - 0x49]
test rdx, rdx
je 0x14017d84c
mov rdi, rdx
xor eax, eax
rep stosb byte [rdi], al
mov rcx, rdx
call fcn.1403683a0
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x49], xmm0
mov qword [rbp - 0x39], 0
mov rdx, rbx
lea rcx, [rbp - 0x49]
call fcn.140090000
mov rbx, qword [rbp - 0x49]
mov r8, rsi
mov rdx, r13
mov rcx, rbx
call fcn.14035bc80
lea rdi, [rsi + rbx]
mov qword [rbp - 0x41], rdi
mov rdx, qword [rbp - 0x31]
test rdx, rdx
je 0x14017d8a5
mov rcx, qword [rbp - 0x21]
sub rcx, rdx
mov rdi, rdx
xor eax, eax
rep stosb byte [rdi], al
mov rcx, rdx
call fcn.1403683a0
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x31], xmm0
mov qword [rbp - 0x21], 0
mov rdi, qword [rbp - 0x41]
mov rbx, qword [rbp - 0x49]
lea r13, [r15*8]
sub r13, qword [rsp + 0x38]
movzx r9d, byte [rbx]
xor r10d, r10d
mov r8d, 4
nop dword [rax]
nop word [rax + rax]
movzx ecx, r8b
movzx edx, r9b
shr edx, cl
lea ecx, [rdx - 1]
sar ecx, 0x1f
not edx
sar edx, 0x1f
and ecx, edx
dec ecx
and ecx, 1
imul rcx, r8
add r10, rcx
shr r9b, cl
shr r8, 1
jne 0x14017d8d0
movzx eax, r9b
add r10, rax
mov r15d, 8
mov eax, r15d
sub rax, r10
cmp r13, rax
ja 0x14017d969
sub rdi, rbx
sub rdi, r14
dec rdi
lea rsi, [rbx + rdi]
mov qword [rsp + 0x20], rdi
mov r9, rbx
mov r8, r14
mov rdx, rsi
mov rcx, r12
call fcn.140183640
mov eax, 0xff
mov rcx, r13
sar eax, cl
and byte [rbx], al
xor eax, eax
test rdi, rdi
je 0x14017d965
nop dword [rax]
movzx ecx, byte [rax + rbx]
cmp cl, 1
je 0x14017d990
test cl, cl
jne 0x14017d965
inc rax
cmp rax, rdi
jne 0x14017d950
mov rbx, qword [rbp - 0x49]
xor sil, sil
test rbx, rbx
je 0x14017d987
mov rcx, qword [rbp - 0x39]
sub rcx, rbx
mov rdi, rbx
xor eax, eax
rep stosb byte [rdi], al
mov rcx, rbx
call fcn.1403683a0
movzx eax, sil
jmp 0x14017daab
lea r13, [rax + 1]
test r13, r13
je 0x14017d965
sub rdi, r13
nop dword [rax]
mov byte [rbp - 0x51], 0
mov rax, qword [r12]
mov r8d, 1
lea rdx, [rbp - 0x51]
mov rcx, r12
mov rax, qword [rax + 0x10]
call qword [case.0x1401cd220.0]
sub r15, 1
jne 0x14017d9a0
mov r8, qword [rsp + 0x40]
mov rdx, qword [r8]
mov r8, qword [r8 + 8]
sub r8, rdx
mov rax, qword [r12]
mov rcx, r12
mov rax, qword [rax + 0x10]
call qword [case.0x1401cd220.0]
mov rax, qword [r12]
lea rdx, [rbx + r13]
mov r8, rdi
mov rcx, r12
mov rax, qword [rax + 0x10]
call qword [case.0x1401cd220.0]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x19], xmm0
mov qword [rbp - 9], rax
lea rdx, [rbp - 0x19]
mov rcx, r12
call fcn.1401614f0
mov byte [rsp + 0x30], r15b
test r14, r14
je 0x14017da4b
mov rdx, qword [rbp - 0x19]
sub rdx, rsi
nop word [rax + rax]
movzx ecx, byte [rdx + rsi]
xor cl, byte [rsi]
movzx eax, byte [rsp + 0x30]
or al, cl
mov byte [rsp + 0x30], al
lea rsi, [rsi + 1]
sub r14, 1
jne 0x14017da30
movzx eax, byte [rsp + 0x30]
lea esi, [rax - 1]
shr sil, 7
not al
shr al, 7
and sil, al
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x14017da71
test sil, sil
je 0x14017da71
mov qword [rax], rdi
mov rdx, qword [rbp - 0x19]
test rdx, rdx
je 0x14017daa0
mov rcx, qword [rbp - 9]
sub rcx, rdx
mov rdi, rdx
xor eax, eax
rep stosb byte [rdi], al
mov rcx, rdx
call fcn.1403683a0
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x19], xmm0
mov qword [rbp - 9], 0
mov rbx, qword [rbp - 0x49]
jmp 0x14017d96c
xor al, al
mov rcx, qword [rbp - 1]
xor rcx, rsp
call fcn.140359070
add rsp, 0xe8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov dword [rsp + 0x20], 0x36f
lea r9, str.C:workspaceproductswindows_endpointprotectionhmpa_thirdparty_botanlib_botan_x64.h
lea r8, str.copy_mem
lea rdx, str.If_n___0_then_args_are_not_null
lea rcx, str.n___0_implies_in___nullptr__out___nullptr
call fcn.1401bfc50
nop
lea rcx, [rsp + 0x50]
call fcn.140160250
lea rdx, [0x140669ad8]
lea rcx, [rsp + 0x50]
call fcn.14035c4f0
nop
lea rcx, [rbp - 0x69]
call fcn.140160250
lea rdx, [0x140669ad8]
lea rcx, [rbp - 0x69]
call fcn.14035c4f0
nop
mov dword [rsp + 0x20], 0x3dd
lea r9, str.C:workspaceproductswindows_endpointprotectionhmpa_thirdparty_botanlib_botan_x64.h
lea r8, str.buffer_insert
lea rdx, [0x1405e4ea8]
lea rcx, str.buf_offset___buf.size__
call fcn.1401bfc50
int3
call fcn.1400710c0
int3