Function at 0x14007d900
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 0x14007dc1c
cmp rcx, r15
jb 0x14007dc1c
cmp dword [rbp + 0x174], 0
lea r8, [rbp + 0x40]
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], r14
lea r14, [rbp + 0x50]
mov qword [rbp + 0x38], rcx
je 0x14007d997
mov rdx, r14
mov rcx, r8
call rbx
lea r8, [rbp + 0x40]
mov dword [rbp + 0x174], 0
mov r13d, dword [rbp + 0x170]
mov dword [rsp + 0x20], r13d
test r13d, r13d
je 0x14007d9eb
nop dword [rax + rax]
test r15, r15
je 0x14007dbfb
movzx edx, byte [rdi]
dec r15
mov ecx, r13d
inc rdi
movzx eax, dl
xor al, byte [rcx + rbp + 0x10]
mov byte [rsi], al
inc rsi
xor byte [rcx + rbp + 0x40], dl
inc r13d
and r13d, 0xf
jne 0x14007d9b0
mov rdx, r14
mov rcx, r8
call rbx
mov dword [rsp + 0x20], r13d
mov qword [rsp + 0x90], r12
lea rbx, [rbp + 0xc]
mov r12d, dword [rbx]
bswap r12d
mov dword [rsp + 0x80], r12d
cmp r15, 0xc00
jb 0x14007daee
movabs rax, 0xaaaaaaaaaaaaaaab
mul r15
shr rdx, 0xb
imul rax, rdx, 0xfffffffffffff400
mov qword [rsp + 0x30], rdx
add r15, rax
nop dword [rax]
nop word [rax + rax]
mov r9d, 0xc00
lea rcx, [rbp + 0x40]
mov r8, rdi
mov rdx, r14
call qword [rsp + 0x38]
mov rbx, rbp
mov r14d, 0xc0
sub rbx, rdi
add rbx, 0x10
nop dword [rax]
nop dword [rax + rax]
mov r8, qword [rsp + 0x88]
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 dword [rax]
mov rcx, qword [rbx + rax]
xor rcx, qword [rax]
mov qword [r8 + rax], rcx
lea rax, [rax + 8]
sub rdx, 1
jne 0x14007daa0
add rsi, 0x10
add rdi, 0x10
sub rbx, 0x10
sub r14, 1
jne 0x14007da70
sub qword [rsp + 0x30], 1
lea r14, [rbp + 0x50]
mov dword [rsp + 0x80], r12d
jne 0x14007da40
mov r13d, dword [rsp + 0x20]
lea r12, [rbp + 0xc]
lea rbx, [rbp + 0xc]
jmp 0x14007daf1
mov r12, rbx
mov r9, r15
lea r14, [rbp + 0x10]
mov rdx, r14
and r9, 0xfffffffffffffff0
je 0x14007dbac
mov r8, rdi
lea rdx, [rbp + 0x50]
lea rcx, [rbp + 0x40]
call qword [rsp + 0x38]
mov rdx, r14
cmp r15, 0x10
jb 0x14007dbac
mov r13d, 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 r8, qword [rsp + 0x88]
lea rdx, [rbp + 0x10]
mov rcx, rbp
call qword [rsp + 0x28]
inc r13d
mov r8, rsi
mov eax, r13d
mov rcx, rdi
bswap eax
mov dword [r12], eax
sub r8, rdi
mov edx, 2
nop
mov rax, qword [rcx + rbx]
xor rax, qword [rcx]
mov qword [rcx + r8], rax
lea rcx, [rcx + 8]
sub rdx, 1
jne 0x14007db70
add rsi, 0x10
add rdi, 0x10
sub rbx, 0x10
sub r14, 1
jne 0x14007db41
mov dword [rsp + 0x80], r13d
lea rbx, [rbp + 0xc]
mov r13d, dword [rsp + 0x20]
lea rdx, [rbp + 0x10]
mov r12, qword [rsp + 0x90]
test r15, r15
je 0x14007dbfb
mov r8, qword [rsp + 0x88]
mov rcx, rbp
call qword [rsp + 0x28]
mov eax, dword [rsp + 0x80]
inc eax
bswap eax
mov dword [rbx], eax
nop word [rax + rax]
mov ecx, r13d
inc r13d
movzx eax, byte [rcx + rdi]
xor byte [rcx + rbp + 0x40], al
xor al, byte [rcx + rbp + 0x10]
mov byte [rcx + rsi], al
sub r15, 1
jne 0x14007dbe0
mov r14, qword [rsp + 0x40]
mov eax, 1
mov dword [rbp + 0x170], r13d
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