Function at 0x14007dd30
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r15
sub rsp, 0x50
mov rax, qword [rcx + 0x160]
mov rbp, rcx
mov rbx, qword [rcx + 0x150]
mov rsi, r9
mov r15, qword [rsp + 0xa0]
mov rdi, r8
mov qword [rsp + 0x28], rax
mov rax, qword [rcx + 0x158]
mov rcx, qword [rcx + 0x38]
mov qword [rsp + 0x38], rax
add rcx, r15
movabs rax, 0xfffffffe0
cmp rcx, rax
ja 0x14007e057
cmp rcx, r15
jb 0x14007e057
cmp dword [rbp + 0x174], 0
lea rdx, [rbp + 0x50]
mov qword [rsp + 0x48], r13
lea r8, [rbp + 0x40]
mov qword [rbp + 0x38], rcx
je 0x14007ddc3
mov rcx, r8
call rbx
lea rdx, [rbp + 0x50]
mov dword [rbp + 0x174], 0
lea r8, [rbp + 0x40]
mov r13d, dword [rbp + 0x170]
mov dword [rsp + 0x20], r13d
test r13d, r13d
je 0x14007de09
test r15, r15
je 0x14007e03b
mov ecx, r13d
dec r15
movzx eax, byte [rcx + rbp + 0x10]
xor al, byte [rdi]
inc rdi
mov byte [rsi], al
inc rsi
xor byte [rcx + rbp + 0x40], al
inc r13d
and r13d, 0xf
jne 0x14007ddd4
mov rcx, r8
call rbx
mov dword [rsp + 0x20], r13d
mov qword [rsp + 0x90], r12
lea rbx, [rbp + 0x10]
mov r12d, dword [rbp + 0xc]
mov qword [rsp + 0x40], r14
bswap r12d
mov dword [rsp + 0x80], r12d
cmp r15, 0xc00
jb 0x14007df15
movabs rax, 0xaaaaaaaaaaaaaaab
mul r15
mov rcx, rdx
shr rcx, 0xb
imul rax, rcx, 0xfffffffffffff400
mov qword [rsp + 0x30], rcx
add r15, rax
mov qword [rsp + 0xa0], r15
mov r15, qword [rsp + 0x88]
nop dword [rax]
mov rbx, rbp
mov r14d, 0xc0
sub rbx, rdi
add rbx, 0x10
mov r8, r15
lea rdx, [rbp + 0x10]
mov rcx, rbp
call qword [rsp + 0x28]
inc r12d
mov r8, rsi
mov eax, r12d
sub r8, rdi
bswap eax
mov dword [rbp + 0xc], eax
mov edx, 2
mov rax, rdi
nop word [rax + rax]
mov rcx, qword [rbx + rax]
xor rcx, qword [rax]
mov qword [r8 + rax], rcx
lea rax, [rax + 8]
sub rdx, 1
jne 0x14007deb0
add rsi, 0x10
add rdi, 0x10
sub rbx, 0x10
sub r14, 1
jne 0x14007de80
lea r8, [rsi - 0xc00]
mov dword [rsp + 0x80], r12d
mov r9d, 0xc00
lea rdx, [rbp + 0x50]
lea rcx, [rbp + 0x40]
call qword [rsp + 0x38]
sub qword [rsp + 0x30], 1
jne 0x14007de70
mov r15, qword [rsp + 0xa0]
lea rbx, [rbp + 0x10]
mov r13d, dword [rsp + 0x20]
mov r12, r15
and r12, 0xfffffffffffffff0
mov qword [rsp + 0x30], r12
je 0x14007dfea
cmp r15, 0x10
jb 0x14007dfd5
mov r12d, dword [rsp + 0x80]
mov r14, r15
shr r14, 4
mov rbx, rbp
sub rbx, rdi
imul rax, r14, 0xfffffffffffffff0
add rbx, 0x10
add r15, rax
mov qword [rsp + 0xa0], r15
mov r15, qword [rsp + 0x88]
mov r8, r15
lea rdx, [rbp + 0x10]
mov rcx, rbp
call qword [rsp + 0x28]
inc r12d
mov r8, rsi
mov eax, r12d
mov rcx, rdi
bswap eax
mov dword [rbp + 0xc], eax
sub r8, rdi
mov edx, 2
nop dword [rax + rax]
mov rax, qword [rbx + rcx]
xor rax, qword [rcx]
mov qword [r8 + rcx], rax
lea rcx, [rcx + 8]
sub rdx, 1
jne 0x14007df90
add rsi, 0x10
add rdi, 0x10
sub rbx, 0x10
sub r14, 1
jne 0x14007df61
mov r15, qword [rsp + 0xa0]
lea rbx, [rbp + 0x10]
mov r13d, dword [rsp + 0x20]
mov dword [rsp + 0x80], r12d
mov r12, qword [rsp + 0x30]
mov r8, rsi
lea rdx, [rbp + 0x50]
sub r8, r12
lea rcx, [rbp + 0x40]
mov r9, r12
call qword [rsp + 0x38]
mov r14, qword [rsp + 0x40]
mov r12, qword [rsp + 0x90]
test r15, r15
je 0x14007e03b
mov r8, qword [rsp + 0x88]
mov rdx, rbx
mov rcx, rbp
call qword [rsp + 0x28]
mov eax, dword [rsp + 0x80]
inc eax
bswap eax
mov dword [rbp + 0xc], eax
nop dword [rax]
mov ecx, r13d
inc r13d
movzx eax, byte [rcx + rdi]
xor al, byte [rcx + rbp + 0x10]
mov byte [rcx + rsi], al
xor byte [rcx + rbp + 0x40], al
sub r15, 1
jne 0x14007e020
mov dword [rbp + 0x170], r13d
mov eax, 1
mov r13, qword [rsp + 0x48]
add rsp, 0x50
pop r15
pop rdi
pop rsi
pop rbp
pop rbx
ret
xor eax, eax
add rsp, 0x50
pop r15
pop rdi
pop rsi
pop rbp
pop rbx
ret