Function at 0x14007f980
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov edi, r8d
lea r14, [rcx + 0x18]
mov rbx, rdx
mov r12, rcx
shr edi, 2
mov ebp, r8d
lea eax, [rdi + 6]
mov dword [rcx + 0x10], eax
mov rcx, r14
lea edx, [rax*4 + 4]
call fcn.14007f8e0
mov rsi, qword [r12 + 0x28]
mov ecx, 1
mov r13, rbp
mov r9, rbx
mov rdx, rsi
shr r13, 2
mov qword [rsp + 0x20], rbp
mov dword [rsp + 0x80], ecx
mov r8, r13
call fcn.14007b880
lea r9, [0x140000000]
lea r11d, [rdi - 1]
mov edx, dword [rsi + r11*4]
lea r10, [0x140101104]
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
movzx r8d, byte [rcx + r9 + 0xfef00]
shr eax, 8
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + r9 + 0xfef00]
xor r8d, eax
movzx eax, dl
shr edx, 0x18
movzx eax, byte [rax + r9 + 0xfef00]
shl r8d, 8
xor r8d, eax
movzx eax, dl
movzx eax, byte [rax + r9 + 0xfef00]
shl r8d, 8
lea r9, [rsi + r13*4]
xor r8d, eax
lea eax, [rdi + 1]
xor r8d, dword [rsi]
mov ebx, eax
xor r8d, dword [0x140101100]
mov dword [r9], r8d
mov ecx, dword [rsi + 4]
xor ecx, r8d
mov dword [rsi + rax*4], ecx
mov edx, dword [rsi + 8]
lea eax, [rdi + 2]
xor edx, ecx
mov r15d, eax
add edi, 3
mov dword [rsi + rax*4], edx
mov eax, dword [rsi + 0xc]
xor eax, edx
mov dword [rsi + rdi*4], eax
mov rax, qword [r14 + 0x10]
mov rcx, qword [r14 + 8]
lea rdx, [rax + rcx*4]
lea rax, [rsi + r13*4 + 0x10]
cmp rax, rdx
je 0x14007fbe9
lea r12, [0x140000000]
nop dword [rax]
cmp ebp, 0x18
jne 0x14007fac8
mov ecx, dword [rsi + 0x24]
mov eax, dword [rsi + 0x14]
xor ecx, dword [rsi + 0x10]
xor eax, ecx
mov dword [rsi + 0x28], ecx
mov dword [rsi + 0x2c], eax
jmp 0x14007fb45
cmp ebp, 0x20
jne 0x14007fb45
mov edx, dword [rsi + 0x2c]
mov eax, edx
shr eax, 0x18
movzx ecx, al
mov eax, edx
movzx r8d, byte [rcx + r12 + 0xfef00]
shr eax, 0x10
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + r12 + 0xfef00]
xor r8d, eax
mov eax, edx
shr eax, 8
shl r8d, 8
movzx ecx, al
movzx eax, byte [rcx + r12 + 0xfef00]
mov ecx, dword [rsi + 0x18]
xor r8d, eax
movzx eax, dl
movzx eax, byte [rax + r12 + 0xfef00]
shl r8d, 8
xor r8d, eax
mov eax, dword [rsi + 0x14]
xor r8d, dword [rsi + 0x10]
xor eax, r8d
mov dword [rsi + 0x30], r8d
xor ecx, eax
mov dword [rsi + 0x34], eax
mov eax, dword [rsi + 0x1c]
xor eax, ecx
mov dword [rsi + 0x38], ecx
mov dword [rsi + 0x3c], eax
mov edx, dword [r9 + r11*4]
mov rsi, r9
lea r9, [r9 + r13*4]
mov eax, edx
add r10, 4
shr eax, 0x10
movzx ecx, al
mov eax, edx
movzx r8d, byte [rcx + r12 + 0xfef00]
shr eax, 8
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + r12 + 0xfef00]
xor r8d, eax
movzx eax, dl
shr edx, 0x18
movzx eax, byte [rax + r12 + 0xfef00]
shl r8d, 8
xor r8d, eax
movzx eax, dl
movzx eax, byte [rax + r12 + 0xfef00]
shl r8d, 8
xor r8d, eax
xor r8d, dword [r10 - 4]
xor r8d, dword [rsi]
mov dword [r9], r8d
mov eax, dword [rsi + 4]
xor eax, r8d
mov dword [rsi + rbx*4], eax
mov ecx, dword [rsi + 8]
xor ecx, eax
mov dword [rsi + r15*4], ecx
mov eax, dword [rsi + 0xc]
xor eax, ecx
mov dword [rsi + rdi*4], eax
mov rax, qword [r14 + 0x10]
mov rcx, qword [r14 + 8]
lea rdx, [rax + rcx*4]
lea rax, [rsi + r13*4 + 0x10]
cmp rax, rdx
jne 0x14007fab0
mov r12, qword [rsp + 0x70]
mov rax, qword [r12 - 8]
lea rcx, [r12 - 8]
call qword [rax + 0x38]
test al, al
jne 0x14007fe49
mov r9d, dword [r12 + 0x10]
mov r11, qword [r12 + 0x28]
xor r10d, r10d
shl r9d, 2
movsxd rax, r9d
test r9d, r9d
je 0x14007fc69
lea rdx, [r11 + rax*4 + 8]
lea r8, [r11 + 8]
mov eax, dword [rdx - 8]
mov ecx, dword [r8 - 8]
add r10d, 4
mov dword [r8 - 8], eax
mov eax, dword [rdx - 4]
mov dword [rdx - 8], ecx
mov ecx, dword [r8 - 4]
mov dword [r8 - 4], eax
mov eax, dword [rdx]
mov dword [rdx - 4], ecx
mov ecx, dword [r8]
mov dword [r8], eax
mov eax, dword [rdx + 4]
mov dword [rdx], ecx
mov ecx, dword [r8 + 4]
mov dword [r8 + 4], eax
add r9d, 0xfffffffc
mov dword [rdx + 4], ecx
sub rdx, 0x10
add r8, 0x10
cmp r10d, r9d
jb 0x14007fc20
cmp dword [r12 + 0x10], 1
jbe 0x14007fe49
lea r10, [0x140000000]
nop dword [rax]
mov r9d, dword [r11 + 0x10]
add r11, 0x10
mov eax, r9d
shr eax, 0x18
movzx ecx, al
mov eax, r9d
shr r9d, 8
movzx edx, byte [rcx + r10 + 0xfef00]
shr eax, 0x10
mov r8d, dword [r10 + rdx*4 + 0x100100]
movzx ecx, al
movzx eax, byte [rcx + r10 + 0xfef00]
xor r8d, dword [r10 + rax*4 + 0x100500]
movzx eax, r9b
mov r9d, dword [r11 + 4]
movzx ecx, byte [rax + r10 + 0xfef00]
movzx eax, byte [r11]
xor r8d, dword [r10 + rcx*4 + 0x100900]
movzx ecx, byte [rax + r10 + 0xfef00]
mov eax, r9d
xor r8d, dword [r10 + rcx*4 + 0x100d00]
shr eax, 0x18
mov dword [r11], r8d
movzx ecx, al
mov eax, r9d
movzx edx, byte [rcx + r10 + 0xfef00]
shr eax, 0x10
shr r9d, 8
mov r8d, dword [r10 + rdx*4 + 0x100100]
movzx ecx, al
movzx eax, byte [rcx + r10 + 0xfef00]
xor r8d, dword [r10 + rax*4 + 0x100500]
movzx eax, r9b
mov r9d, dword [r11 + 8]
movzx ecx, byte [rax + r10 + 0xfef00]
movzx eax, byte [r11 + 4]
xor r8d, dword [r10 + rcx*4 + 0x100900]
movzx ecx, byte [rax + r10 + 0xfef00]
mov eax, r9d
xor r8d, dword [r10 + rcx*4 + 0x100d00]
shr eax, 0x18
mov dword [r11 + 4], r8d
movzx ecx, al
mov eax, r9d
movzx edx, byte [rcx + r10 + 0xfef00]
shr eax, 0x10
shr r9d, 8
mov r8d, dword [r10 + rdx*4 + 0x100100]
movzx ecx, al
movzx eax, byte [rcx + r10 + 0xfef00]
xor r8d, dword [r10 + rax*4 + 0x100500]
movzx eax, r9b
mov r9d, dword [r11 + 0xc]
movzx ecx, byte [rax + r10 + 0xfef00]
movzx eax, byte [r11 + 8]
xor r8d, dword [r10 + rcx*4 + 0x100900]
movzx ecx, byte [rax + r10 + 0xfef00]
mov eax, r9d
xor r8d, dword [r10 + rcx*4 + 0x100d00]
shr eax, 0x18
movzx ecx, al
mov dword [r11 + 8], r8d
mov eax, r9d
movzx edx, byte [rcx + r10 + 0xfef00]
shr eax, 0x10
shr r9d, 8
mov r8d, dword [r10 + rdx*4 + 0x100100]
movzx ecx, al
movzx eax, byte [rcx + r10 + 0xfef00]
xor r8d, dword [r10 + rax*4 + 0x100500]
movzx eax, r9b
movzx ecx, byte [rax + r10 + 0xfef00]
movzx eax, byte [r11 + 0xc]
xor r8d, dword [r10 + rcx*4 + 0x100900]
movzx ecx, byte [rax + r10 + 0xfef00]
mov eax, dword [rsp + 0x80]
xor r8d, dword [r10 + rcx*4 + 0x100d00]
inc eax
mov dword [r11 + 0xc], r8d
cmp eax, dword [r12 + 0x10]
mov dword [rsp + 0x80], eax
jb 0x14007fc80
mov rdx, qword [r12 + 0x28]
mov r8d, 4
mov r10, rdx
mov r9, r8
sub r10, rdx
nop dword [rax]
mov eax, dword [r10 + rdx]
mov ecx, eax
ror ecx, 8
and ecx, 0xff00ff00
rol eax, 8
and eax, 0xff00ff
or ecx, eax
mov dword [rdx], ecx
add rdx, r8
sub r9, 1
jne 0x14007fe60
mov ecx, dword [r12 + 0x10]
mov rax, qword [r12 + 0x28]
shl ecx, 2
lea rdx, [rax + rcx*4]
mov r9, rdx
sub r9, rdx
nop dword [rax + rax]
mov eax, dword [r9 + rdx]
add rdx, 4
mov ecx, eax
ror ecx, 8
and ecx, 0xff00ff00
rol eax, 8
and eax, 0xff00ff
or ecx, eax
sub r8, 1
mov dword [rdx - 4], ecx
jne 0x14007fea0
mov rbx, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret