Function at 0x7fffb6db9724
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov rdi, qword [rcx + 0x2fd0]
xor r15d, r15d
mov r14, r9
mov ebp, r8d
mov rbx, rcx
mov r12d, 0x8000
cmp byte [rcx + 0x2fd8], r15b
je 0x7fffb6db9765
add rdi, r12
mov r8, rbp
mov rcx, rdi
call sub.msvcrt.dll_memcpy
cmp ebp, r12d
jae 0x7fffb6db9792
mov eax, 0x109
mov ecx, r12d
sub ecx, ebp
cmp ecx, eax
cmovb eax, ecx
lea rcx, [rdi + rbp]
mov r8d, eax
xor edx, edx
call sub.msvcrt.dll_memset
mov edi, 0x100
mov rax, qword [rbx + 0x2fc8]
mov qword [rbx + 0x28], rax
mov rax, qword [rbx + 0x2fc0]
mov qword [rbx + 0x30], rax
lea r13d, [rdi - 0x80]
mov eax, dword [rsp + 0x70]
mov dword [rbx + 0x1c], eax
mov rax, qword [rbx + 0x2fd0]
mov qword [rbx + 0x20], rax
mov qword [rbx + 8], r14
mov word [rbx + 0x18], r15w
mov dword [rbx + 0x3c], ebp
mov dword [rbx + 0x40], r15d
cmp byte [rbx + 0x2fd8], r15b
jne 0x7fffb6db982f
lea rcx, [rax + 0x8000]
mov edx, edi
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
add rcx, r13
movups xmm1, xmmword [rax + 0x70]
add rax, r13
movups xmmword [rcx - 0x10], xmm1
sub rdx, 1
jne 0x7fffb6db97e5
mov rcx, rbx
mov word [rbx + 0x44], r15w
mov dword [rbx + 0x48], r15d
call fcn.7fffb6db9cc0
mov r9, qword [rbx + 0x20]
mov r10d, 1
mov word [rbx + 0x54], r12w
movzx r8d, r15w
mov dword [rbx + 0x4c], r12d
mov edx, r15d
mov dword [rbx + 0x38], r15d
lea r14d, [r10 + 1]
movzx eax, r8w
add r8w, r10w
shl edx, 5
add eax, r12d
cdqe
movzx ecx, byte [rax + r9]
xor edx, ecx
and edx, 0x7fff
mov dword [rbx + 0x38], edx
cmp r8w, r14w
jb 0x7fffb6db9862
cmp byte [rbx + 0x2fd8], r15b
je 0x7fffb6db98eb
mov r8, r15
mov r9, r12
mov rdx, qword [rbx + 0x28]
mov eax, r15d
movzx ecx, word [r8 + rdx]
add cx, r12w
cmp word [r8 + rdx], r12w
cmovae ax, cx
mov word [r8 + rdx], ax
add r8, r14
sub r9, r10
jne 0x7fffb6db9897
mov r8, r15
mov r9, r12
mov rdx, qword [rbx + 0x30]
mov eax, r15d
movzx ecx, word [r8 + rdx]
add cx, r12w
cmp word [r8 + rdx], r12w
cmovae ax, cx
mov word [r8 + rdx], ax
add r8, r14
sub r9, r10
jne 0x7fffb6db98c3
jmp 0x7fffb6db9902
mov rcx, r15
mov rdx, r12
mov rax, qword [rbx + 0x28]
mov word [rcx + rax], r15w
add rcx, r14
sub rdx, r10
jne 0x7fffb6db98f1
mov esi, 8
mov rcx, rbx
mov r8d, esi
lea edx, [rsi + 0x3b]
call fcn.7fffb6db99d8
mov r8d, esi
lea edx, [rsi + 0x43]
mov rcx, rbx
call fcn.7fffb6db99d8
mov rcx, rbx
call fcn.7fffb6dbaef8
add ax, r14w
movzx ecx, ax
mov rax, qword [rsp + 0x78]
mov dword [rax], ecx
cmp byte [rbx + 0x2fd8], r15b
je 0x7fffb6db9997
mov rax, qword [rbx + 0x20]
lea rcx, [rax + 0x8000]
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rax + 0x20], xmm0
movups xmm1, xmmword [rcx + 0x30]
movups xmmword [rax + 0x30], xmm1
movups xmm0, xmmword [rcx + 0x40]
movups xmmword [rax + 0x40], xmm0
movups xmm1, xmmword [rcx + 0x50]
movups xmmword [rax + 0x50], xmm1
movups xmm0, xmmword [rcx + 0x60]
movups xmmword [rax + 0x60], xmm0
add rax, r13
movups xmm1, xmmword [rcx + 0x70]
add rcx, r13
movups xmmword [rax - 0x10], xmm1
sub rdi, 1
jne 0x7fffb6db994d
cmp dword [rbx + 0x40], r15d
je 0x7fffb6db99a4
mov eax, 3
jmp 0x7fffb6db99b2
cmp ebp, r12d
sete al
mov byte [rbx + 0x2fd8], al
xor eax, eax
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret