Function at 0x14022fb70
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
push rbx
push rbp
push rdi
push r13
push r14
sub rsp, 0x60
mov rdi, rdx
mov rax, r9
cqo
mov rbx, r8
and edx, 0xf
mov r13, rcx
add rax, rdx
mov rbp, rax
and eax, 0xf
sub rax, rdx
sar rbp, 4
mov qword [rsp + 0x28], rax
mov r14, rax
test rax, rax
je 0x14022fbd0
test rbp, rbp
jne 0x14022fbc1
xor eax, eax
add rsp, 0x60
pop r14
pop r13
pop rdi
pop rbp
pop rbx
ret
dec rbp
nop dword [rax]
nop dword [rax + rax]
mov qword [rsp + 0x90], rsi
mov rsi, qword [rsp + 0xb0]
mov qword [rsp + 0x58], r12
lea r12, [r13 + 0xf8]
mov qword [rsp + 0x50], r15
mov r15d, dword [rsi]
mov eax, dword [rsi + 4]
mov ecx, dword [rsi + 8]
mov edx, dword [rsi + 0xc]
mov dword [rsp + 0xa0], r15d
mov dword [rsp + 0x98], eax
mov dword [rsp + 0x20], ecx
mov dword [rsp + 0x24], edx
test rbp, rbp
je 0x14022fca8
mov esi, dword [rsp + 0xa0]
mov r15, rdi
sub r15, rbx
mov r14d, eax
nop dword [rax]
mov edx, dword [r13 + 4]
mov r9, rbx
mov r8, rdi
mov rcx, r12
call fcn.14022df20
xor dword [rbx], esi
xor dword [rbx + 4], r14d
mov eax, dword [rsp + 0x20]
xor dword [rbx + 8], eax
mov eax, dword [rsp + 0x24]
xor dword [rbx + 0xc], eax
mov ecx, dword [rbx + r15 + 8]
mov edx, dword [rbx + r15 + 0xc]
mov esi, dword [rdi]
add rdi, 0x10
mov r14d, dword [rbx + r15 + 4]
add rbx, 0x10
mov dword [rsp + 0x20], ecx
mov dword [rsp + 0x24], edx
sub rbp, 1
jne 0x14022fc30
mov dword [rsp + 0x98], r14d
mov eax, dword [rsp + 0x98]
mov r14, qword [rsp + 0x28]
mov dword [rsp + 0xa0], esi
mov r15d, dword [rsp + 0xa0]
mov rsi, qword [rsp + 0xb0]
test r14, r14
je 0x14022fe00
mov edx, dword [rdi + 4]
lea r9, [rsp + 0x38]
mov r8d, dword [rdi]
mov ecx, dword [rdi + 8]
mov eax, dword [rdi + 0xc]
mov dword [rsi], r8d
mov dword [rsi + 4], edx
mov dword [rsi + 8], ecx
mov dword [rsi + 0xc], eax
mov dword [rsp + 0x28], r8d
lea r8, [rsp + 0x28]
mov dword [rsp + 0x2c], edx
mov edx, dword [r13 + 4]
mov dword [rsp + 0x30], ecx
mov rcx, r12
mov dword [rsp + 0x34], eax
call fcn.14022df20
xor ecx, ecx
test r14, r14
je 0x14022fdc5
cmp r14, 0x10
jb 0x14022fd8e
lea rdx, [rbx + 0xf]
lea r10, [rdi + 0xf]
add rdx, r14
add r10, r14
lea r9, [rbx + 0x10]
lea r8, [rdi + 0x10]
cmp r9, r10
ja 0x14022fd25
cmp rdx, r8
jae 0x14022fd8e
lea rax, [rsp + r14 + 0x37]
cmp r9, rax
ja 0x14022fd39
lea r9, [rsp + 0x38]
cmp rdx, r9
jae 0x14022fd8e
lea rdx, [rsp + 0x38]
cmp rdx, r10
ja 0x14022fd48
cmp rax, r8
jae 0x14022fd8e
mov rax, r14
mov rdx, r14
and eax, 0xf
sub rdx, rax
mov r8, rdi
sub r8, rbx
nop word [rax + rax]
movdqu xmm0, xmmword [rsp + rcx + 0x38]
lea rax, [rbx + rcx]
movdqu xmm1, xmmword [rax + r8 + 0x10]
movdqu xmmword [rsp + rcx + 0x38], xmm1
add rcx, 0x10
pxor xmm1, xmm0
movdqu xmmword [rax + 0x10], xmm1
cmp rcx, rdx
jb 0x14022fd60
cmp rcx, r14
jae 0x14022fdc5
lea rdx, [rsp + 0x38]
mov r10, rbx
sub r10, rdx
sub rdi, rbx
add r10, 0x10
lea r9, [rsp + 0x38]
add r9, rcx
inc rcx
lea r8, [r10 + r9]
movzx eax, byte [r8 + rdi]
movzx edx, al
xor dl, byte [r9]
mov byte [r9], al
mov byte [r8], dl
cmp rcx, r14
jb 0x14022fda0
mov edx, dword [r13 + 4]
lea r8, [rsp + 0x38]
mov r9, rbx
mov rcx, r12
call fcn.14022df20
xor dword [rbx], r15d
mov eax, dword [rsp + 0x98]
xor dword [rbx + 4], eax
mov eax, dword [rsp + 0x20]
xor dword [rbx + 8], eax
mov eax, dword [rsp + 0x24]
xor dword [rbx + 0xc], eax
jmp 0x14022fe0c
mov dword [rsi], r15d
mov dword [rsi + 4], eax
mov dword [rsi + 8], ecx
mov dword [rsi + 0xc], edx
mov rax, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x90]
add rsp, 0x60
pop r14
pop r13
pop rdi
pop rbp
pop rbx
ret