Function at 0x140016060
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
sub rsp, 0x20
mov rax, qword [rdx + 8]
mov rbx, rcx
mov qword [rcx + 0x10], rax
mov rdi, rdx
mov rax, qword [rdx + 0x20]
mov qword [rcx + 0x18], rax
mov rcx, qword [rcx + 0x4b8]
call fcn.1400180f0
mov rcx, qword [rdi + 8]
mov r12d, eax
mov r8, qword [rbx + 0x50]
sub rcx, qword [rbx + 0x10]
add qword [rbx + 0x48], rcx
mov rsi, qword [rbx + 0x18]
mov r11, qword [rbx + 0x30]
sub r8, rsi
add r8, qword [rdi + 0x20]
mov qword [rbx + 0x50], r8
cmp qword [rbx + 0x48], r11
ja 0x1400163ce
mov r10, qword [rbx + 0x38]
cmp r8, r10
ja 0x1400163ce
cmp dword [rbx + 0x24], 1
lea r13, [0x14006aec0]
jne 0x140016121
mov r8, qword [rdi + 0x18]
mov r9, qword [rdi + 0x20]
add r8, rsi
mov eax, dword [rbx + 0x20]
not eax
sub r9, rsi
je 0x14001611c
nop dword [rax]
nop dword [rax + rax]
movzx ecx, byte [r8]
lea r8, [r8 + 1]
movzx edx, al
xor rdx, rcx
shr eax, 8
xor eax, dword [r13 + rdx*4]
sub r9, 1
jne 0x140016100
not eax
mov dword [rbx + 0x20], eax
cmp r12d, 1
jne 0x1400163c9
cmp r11, 0xffffffffffffffff
je 0x14001613b
cmp r11, qword [rbx + 0x48]
jne 0x1400163ce
cmp r10, 0xffffffffffffffff
je 0x14001614b
cmp r10, qword [rbx + 0x50]
jne 0x1400163ce
mov edx, dword [rbx + 0x40]
add rdx, qword [rbx + 0x48]
add rdx, qword [rbx + 0x60]
mov qword [rsp + 0x40], rbp
mov r9, rdx
mov qword [rsp + 0x48], r14
mov r10, rdx
mov r11, rdx
shr r9, 8
mov rdi, rdx
shr r10, 0x10
mov rsi, rdx
shr r11, 0x18
mov rbp, rdx
shr rdi, 0x20
mov r14, rdx
shr rsi, 0x28
shr rbp, 0x30
shr r14, 0x38
cmp dword [rbx + 0x24], 1
mov qword [rbx + 0x60], rdx
jne 0x1400161d7
lea rax, [rdx + 4]
mov r9, rax
mov qword [rbx + 0x60], rax
mov r10, rax
shr r9, 8
mov r11, rax
shr r10, 0x10
mov rdi, rax
shr r11, 0x18
mov rsi, rax
shr rdi, 0x20
mov rbp, rax
shr rsi, 0x28
shr rbp, 0x30
mov r14, rax
shr r14, 0x38
mov rdx, rax
mov rax, qword [rbx + 0x50]
add qword [rbx + 0x68], rax
mov r8d, dword [rbx + 0x70]
not r8d
mov eax, r8d
shr r8d, 8
xor rax, rdx
movzx edx, byte [rbx + 0x68]
movzx ecx, al
xor r8d, dword [r13 + rcx*4]
mov eax, r8d
shr r8d, 8
xor rax, r9
movzx ecx, al
xor r8d, dword [r13 + rcx*4]
mov eax, r8d
shr r8d, 8
xor rax, r10
movzx ecx, al
xor r8d, dword [r13 + rcx*4]
mov eax, r8d
shr r8d, 8
xor rax, r11
movzx ecx, al
xor r8d, dword [r13 + rcx*4]
mov eax, r8d
shr r8d, 8
xor rax, rdi
movzx ecx, al
xor r8d, dword [r13 + rcx*4]
mov eax, r8d
shr r8d, 8
xor rax, rsi
movzx ecx, al
xor r8d, dword [r13 + rcx*4]
mov eax, r8d
shr r8d, 8
xor rax, rbp
movzx ecx, al
xor r8d, dword [r13 + rcx*4]
movzx ecx, r8b
shr r8d, 8
xor rcx, r14
xor r8d, dword [r13 + rcx*4]
movzx ecx, r8b
xor rdx, rcx
shr r8d, 8
xor r8d, dword [r13 + rdx*4]
movzx edx, byte [rbx + 0x69]
movzx ecx, r8b
xor rdx, rcx
shr r8d, 8
xor r8d, dword [r13 + rdx*4]
movzx edx, byte [rbx + 0x6a]
movzx ecx, r8b
xor rdx, rcx
shr r8d, 8
xor r8d, dword [r13 + rdx*4]
movzx edx, byte [rbx + 0x6b]
movzx ecx, r8b
xor rdx, rcx
shr r8d, 8
xor r8d, dword [r13 + rdx*4]
movzx edx, byte [rbx + 0x6c]
movzx ecx, r8b
xor rdx, rcx
shr r8d, 8
xor r8d, dword [r13 + rdx*4]
movzx edx, byte [rbx + 0x6d]
movzx ecx, r8b
xor rdx, rcx
shr r8d, 8
xor r8d, dword [r13 + rdx*4]
movzx edx, byte [rbx + 0x6e]
movzx ecx, r8b
xor rdx, rcx
shr r8d, 8
xor r8d, dword [r13 + rdx*4]
movzx edx, byte [rbx + 0x6f]
movzx ecx, r8b
xor rdx, rcx
mov r14, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x40]
shr r8d, 8
xor r8d, dword [r13 + rdx*4]
movzx edx, byte [rbx + 0x70]
movzx ecx, r8b
xor rdx, rcx
shr r8d, 8
xor r8d, dword [r13 + rdx*4]
movzx edx, byte [rbx + 0x71]
movzx ecx, r8b
xor rdx, rcx
shr r8d, 8
xor r8d, dword [r13 + rdx*4]
movzx edx, byte [rbx + 0x72]
movzx ecx, r8b
xor rdx, rcx
shr r8d, 8
xor r8d, dword [r13 + rdx*4]
movzx edx, byte [rbx + 0x73]
movzx ecx, r8b
xor rdx, rcx
shr r8d, 8
xor r8d, dword [r13 + rdx*4]
movzx edx, byte [rbx + 0x74]
movzx ecx, r8b
xor rdx, rcx
shr r8d, 8
xor r8d, dword [r13 + rdx*4]
movzx edx, byte [rbx + 0x75]
movzx ecx, r8b
xor rdx, rcx
shr r8d, 8
xor r8d, dword [r13 + rdx*4]
movzx edx, byte [rbx + 0x76]
movzx ecx, r8b
xor rdx, rcx
shr r8d, 8
xor r8d, dword [r13 + rdx*4]
movzx edx, byte [rbx + 0x77]
movzx ecx, r8b
shr r8d, 8
xor rdx, rcx
xor r8d, dword [r13 + rdx*4]
inc qword [rbx + 0x58]
not r8d
mov dword [rbx + 0x70], r8d
mov eax, r12d
jmp 0x1400163d3
mov eax, 7
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x20
pop r13
pop r12
pop rdi
ret