Function at 0x1401acf6c
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x78
and qword [rbp - 0x48], 0
mov rax, rdx
cmp byte [rcx + 8], 0
mov r15, rcx
jne 0x1401acfb0
mov edi, 0xc004d101
mov ecx, edi
call fcn.14003e600
jmp 0x1401ad18d
test rax, rax
jne 0x1401acfbe
mov ecx, 0x80070057
mov edi, ecx
jmp 0x1401acfa6
mov rax, qword [rcx]
mov r14d, dword [rax + 0x10]
mov eax, dword [rbp + 0x68]
inc eax
add eax, r14d
cmp r8d, eax
jb 0x1401acfb5
mov esi, r8d
mov dword [rbp + 0x48], r14d
sub esi, r14d
dec esi
mov dword [rbp + 0x70], esi
lea ecx, [r14 + rsi]
add ecx, r14d
add ecx, esi
call fcn.14011ea0c
mov rdx, rax
lea rcx, [rbp - 0x48]
call fcn.1401c4984
mov rbx, qword [rbp - 0x48]
test rbx, rbx
jne 0x1401ad00b
mov edi, 0x8007000e
jmp 0x1401acfa4
mov ecx, esi
lea rax, [rsi + rbx]
mov qword [rbp - 0x38], rcx
lea r13, [r14 + rsi]
mov r12d, esi
lea r8, [rbp + 0x78]
add r12, r14
mov qword [rbp - 0x40], rax
add r12, rcx
mov dword [rbp + 0x78], esi
mov rcx, qword [r15]
mov r9, rbx
mov rdx, rbx
add r12, rbx
add r13, rbx
call fcn.1401ad37c
mov edi, eax
test eax, eax
jns 0x1401ad04e
mov ecx, eax
jmp 0x1401acfa6
mov rax, qword [r15]
mov edi, dword [rbp + 0x58]
mov ecx, dword [rax + 0x10]
add ecx, ecx
sub edi, ecx
mov ecx, dword [rbp + 0x78]
sub edi, dword [rbp + 0x68]
sub edi, 2
je 0x1401ad076
mov r8d, edi
add rcx, rbx
xor edx, edx
call fcn.14001ba6e
mov ecx, dword [rbp + 0x78]
mov r8d, dword [rbp + 0x68]
add ecx, edi
mov rdx, qword [rbp + 0x60]
mov byte [rcx + rbx], 1
inc ecx
add rcx, rbx
call sub.msvcrt.dll_memcpy
mov rax, qword [rbp - 0x40]
lea rcx, [rbp - 0x30]
and dword [rbp - 0x28], 0
mov qword [rbp - 0x30], rax
call fcn.14019c7b8
and dword [rbp - 0x10], 0
lea rcx, [rbp - 0x18]
mov qword [rbp - 0x18], rax
mov edx, r14d
movaps xmm0, xmmword [rbp - 0x18]
movdqa xmmword [rbp - 0x18], xmm0
call fcn.14019f164
mov edi, eax
test eax, eax
js 0x1401ad047
mov r9, qword [rbp - 0x40]
lea r8, [rbp + 0x70]
mov rcx, qword [r15]
mov rdx, r13
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], r14d
call fcn.1401ad1b8
mov edi, eax
test eax, eax
js 0x1401ad047
test esi, esi
je 0x1401ad108
mov rcx, rbx
mov edx, esi
sub r13, rbx
mov al, byte [r13 + rcx]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1401ad0f8
mov rcx, qword [r15]
lea r8, [rbp + 0x48]
mov r9, rbx
mov rdx, r12
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], esi
call fcn.1401ad1b8
mov edi, eax
test eax, eax
js 0x1401ad047
mov r14d, dword [rbp + 0x48]
test r14d, r14d
je 0x1401ad157
mov rbx, qword [rbp - 0x40]
mov rcx, r12
sub rbx, r12
mov edx, r14d
mov al, byte [rbx + rcx]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1401ad145
mov rbx, qword [rbp - 0x48]
lea eax, [r14 + rsi]
cmp dword [rbp + 0x58], eax
jbe 0x1401acfb5
mov rsi, qword [rbp + 0x50]
mov r8, r14
mov rdx, r12
lea rcx, [rsi + 1]
mov byte [rsi], 0
call sub.msvcrt.dll_memcpy
mov r8, qword [rbp - 0x38]
lea ecx, [r14 + 1]
add rcx, rsi
mov rdx, rbx
call sub.msvcrt.dll_memcpy
mov ecx, edi
call fcn.14006a86c
lea rcx, [rbp - 0x48]
call fcn.14019c76c
mov eax, edi
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret