Function at 0x14027efc0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbx
push rbp
push r12
push r13
sub rsp, 0x38
mov rax, qword [rcx]
mov rbp, r9
mov r13, r8
mov rbx, rdx
mov r12, rcx
call qword [rax + 0x20]
test al, al
jne 0x14027eff2
mov rcx, r12
call fcn.140251df0
lea rdx, [0x140326700]
mov ecx, 0x100
call fcn.1402a7ac0
lea rdx, [0x140326800]
mov ecx, 0x100
call fcn.1402a7ac0
test rbp, rbp
je 0x14027f666
mov qword [rsp + 0x68], rsi
lea rax, [rbx + 8]
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r14
lea r14, [r13 + 8]
sub r13, rbx
mov qword [rsp + 0x20], r15
mov qword [rsp + 0x70], r13
nop dword [rax]
nop word [rax + rax]
mov r15, qword [r12 + 8]
lea r13, [0x140326800]
mov r11d, dword [rax - 8]
lea rbp, [0x140326700]
mov edi, dword [rax - 4]
add r15, 0xc
mov ebx, dword [rax]
mov r12d, 4
mov esi, dword [rax + 4]
bswap r11d
bswap edi
bswap ebx
bswap esi
nop dword [rax]
nop word [rax + rax]
mov r8d, esi
xor r8d, dword [r15 - 8]
xor r8d, ebx
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + r13]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + r13]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, ebx
xor r8d, dword [r15 - 0xc]
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
add r8d, r9d
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + r13]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + r13]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r10d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r10d, edx
lea r8d, [r9 + r10]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + r13]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + r13]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
xor edi, r9d
lea ecx, [r9 + r10]
xor r11d, ecx
mov r8d, edi
xor r8d, r11d
xor r8d, dword [r15]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + r13]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + r13]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, r11d
xor r8d, dword [r15 - 4]
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
add r8d, r9d
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + r13]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + r13]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r10d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r10d, edx
lea r8d, [r9 + r10]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + r13]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + r13]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
xor esi, r9d
lea ecx, [r9 + r10]
mov r8d, esi
xor r8d, dword [r15 + 8]
xor ebx, ecx
xor r8d, ebx
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + r13]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + r13]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, ebx
xor r8d, dword [r15 + 4]
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
add r8d, r9d
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + r13]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + r13]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r10d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r10d, edx
lea r8d, [r9 + r10]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + r13]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + r13]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
lea ecx, [r9 + r10]
xor edi, r9d
xor r11d, ecx
mov r8d, edi
xor r8d, dword [r15 + 0x10]
xor r8d, r11d
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + r13]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + r13]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, r11d
xor r8d, dword [r15 + 0xc]
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
add r8d, r9d
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + r13]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + r13]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r10d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r10d, edx
lea r8d, [r9 + r10]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + r13]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + r13]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + rbp]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
lea r15, [r15 + 0x20]
xor esi, r9d
lea ecx, [r9 + r10]
xor ebx, ecx
sub r12, 1
jne 0x14027f090
mov r13, qword [rsp + 0x70]
mov r12, qword [rsp + 0x60]
bswap ebx
bswap esi
mov dword [rax + r13 - 8], ebx
add rax, 0x10
mov dword [r14 - 4], esi
bswap r11d
mov dword [r14], r11d
bswap edi
mov dword [r14 + 4], edi
add r14, 0x10
sub qword [rsp + 0x78], 1
jne 0x14027f050
mov r15, qword [rsp + 0x20]
mov r14, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x68]
add rsp, 0x38
pop r13
pop r12
pop rbp
pop rbx
ret