Function at 0x140021218
Capabilities:
Encode data using xor

Disassembly:
test r8, r8
je 0x1400215ab
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x17]
sub rsp, 0xc0
mov rax, qword [0x1401652a8]
xor rax, rsp
mov qword [rbp + 0xf], rax
mov ebx, dword [rbp + 0x77]
mov r13, rcx
mov rcx, qword [rbp + 0x7f]
mov r15, r8
mov qword [rsp + 0x10], rdx
mov r11d, ebx
mov r12, r8
not r11d
mov al, byte [r8 + r13 - 1]
mov byte [rcx], al
and r15d, 7
jne 0x14002127a
xor ecx, ecx
jmp 0x14002142b
movzx r14d, r9w
mov rax, r9
shr rax, 0x10
mov r8d, r14d
xor r8d, ebx
movzx esi, ax
imul r8d, esi
mov eax, ebx
shr eax, 0xf
mov rdi, r9
shr rdi, 0x20
mov qword [rsp + 0x18], r9
mov qword [rsp + 0x20], r9
xor r8d, eax
mov qword [rsp + 0x28], r9
xor r8d, r11d
mov qword [rbp - 0x79], r9
mov edx, r8d
movzx r11d, di
mov eax, r8d
mov qword [rbp - 0x71], r9
shr eax, 8
sub edx, r11d
imul edx, r14d
mov qword [rbp - 0x69], r9
mov qword [rbp - 0x61], r9
mov qword [rbp - 0x59], r9
mov qword [rbp - 0x51], r9
sub edx, eax
mov qword [rbp - 0x49], r9
xor edx, ebx
mov qword [rbp - 0x41], r9
mov ecx, edx
mov qword [rbp - 0x39], r9
mov rbx, r9
mov qword [rbp - 0x31], r9
shr rbx, 0x30
sub ecx, ebx
mov qword [rbp - 0x29], r9
sub ecx, r9d
mov qword [rbp - 0x21], r9
xor ecx, r8d
mov qword [rbp - 0x19], r9
mov eax, ecx
mov qword [rbp - 0x11], r9
ror eax, 0x13
mov r8d, r9d
xor r8d, ecx
mov qword [rbp - 9], r9
ror r8d, 0xb
imul r8d, r11d
xor r8d, eax
xor r8d, edx
mov eax, r8d
ror eax, 0x11
lea edx, [rdi + r8]
ror edx, 0x1e
imul edx, esi
sub edx, eax
xor edx, ecx
mov r10d, edx
ror r10d, 0xc
sub r10d, r14d
imul r10d, ebx
xor r10d, r8d
mov r8d, r9d
sub r8d, r10d
mov eax, r10d
ror r8d, 0xf
ror eax, 2
imul r8d, ebx
sub r8d, eax
xor r8d, edx
mov ecx, r8d
mov eax, r8d
xor ecx, r14d
shr eax, 0xb
rol ecx, 4
imul ecx, r11d
add ecx, eax
xor ecx, r10d
and qword [rsp + 8], 0
xor ebx, ecx
imul ebx, esi
mov eax, ecx
ror eax, 0xb
mov rdx, r15
mov qword [rbp - 1], r9
mov qword [rbp + 7], r9
add eax, ebx
xor eax, r8d
lea r8, [rsp + 8]
mov dword [rsp], eax
sub eax, r14d
xor eax, edi
xor eax, ecx
mov rcx, r13
mov dword [rsp + 4], eax
sub r8, r13
mov al, byte [rcx]
mov byte [r8 + rcx], al
inc rcx
sub rdx, 1
jne 0x1400213c1
mov eax, dword [rsp + 0xc]
xor dword [rsp + 4], eax
lea eax, [rdx + 8]
mov rcx, qword [rsp + 8]
lea rdx, [rsp]
xor dword [rsp], ecx
lea rdx, [rdx + r15]
sub rax, r15
je 0x1400213fc
mov byte [rdx], 0
inc rdx
sub rax, 1
jne 0x1400213f0
mov r10, qword [rsp + 0x10]
lea rax, [rsp]
sub r10, rax
lea rdx, [rsp]
mov r8, r15
mov al, byte [rdx]
mov byte [r10 + rdx], al
inc rdx
sub r8, 1
jne 0x14002140f
mov ebx, dword [rsp + 4]
mov r11d, dword [rsp]
mov rdx, qword [rsp + 0x10]
shr r12, 3
lea r8, [r15 + rdx]
mov qword [rsp + 0x10], r8
test r12, r12
je 0x140021585
mov r14, r9
movzx edi, r9w
mov r15, r9
shr r14, 0x30
mov r10, r9
shr r15, 0x20
shr r10, 0x10
mov qword [rsp + 8], r10
sub r13, rdx
mov dword [rsp], edi
mov rax, qword [r8 + r13]
movzx esi, r10w
mov r8d, eax
xor r8d, r11d
mov rdx, rax
shr rdx, 0x20
mov r11d, r8d
sub r11d, edi
movzx edi, r15w
xor r11d, edx
mov edx, r14d
xor r11d, r15d
xor r11d, ebx
xor edx, r11d
mov ebx, r11d
imul edx, esi
ror ebx, 0xb
add ebx, edx
xor ebx, r8d
mov r8d, r9d
mov r10d, ebx
mov edx, ebx
xor r10d, dword [rsp]
rol r10d, 4
imul r10d, edi
shr edx, 0xb
add r10d, edx
xor r10d, r11d
sub r8d, r10d
mov edx, r10d
ror edx, 2
ror r8d, 0xf
imul r8d, r14d
sub r8d, edx
xor r8d, ebx
mov ebx, r8d
ror ebx, 0xc
sub ebx, dword [rsp]
imul ebx, r14d
xor ebx, r10d
mov edx, ebx
ror edx, 0x11
lea r10d, [rbx + r15]
ror r10d, 0x1e
imul r10d, esi
sub r10d, edx
xor r10d, r8d
mov r11d, r10d
mov edx, r10d
xor r11d, r9d
ror edx, 0x13
ror r11d, 0xb
imul r11d, edi
xor r11d, edx
xor r11d, ebx
mov rbx, rcx
mov r8d, r11d
shr rbx, 0x20
sub r8d, r14d
sub r8d, r9d
xor r8d, r10d
mov r10d, r8d
mov edx, r8d
sub r10d, edi
shr edx, 8
mov edi, dword [rsp]
imul r10d, edi
sub r10d, edx
xor r10d, r11d
mov r11d, edi
xor r11d, r10d
mov edx, r10d
imul r11d, esi
shr edx, 0xf
xor r11d, edx
xor r11d, r8d
mov r8, qword [rsp + 0x10]
xor r11d, ecx
xor ebx, r10d
mov dword [r8], r11d
mov dword [r8 + 4], ebx
mov r10, qword [rsp + 8]
add r8, 8
mov qword [rsp + 0x10], r8
mov rcx, rax
sub r12, 1
jne 0x140021465
mov rcx, qword [rbp + 0xf]
xor rcx, rsp
call fcn.14003b560
mov rbx, qword [rsp + 0x100]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret