Function at 0x14027e8f0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbx
push rbp
push r13
push r15
sub rsp, 0x48
mov rax, qword [rcx]
mov rbp, r9
mov r13, r8
mov rbx, rdx
mov r15, rcx
call qword [rax + 0x20]
test al, al
jne 0x14027e922
mov rcx, r15
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 0x14027efae
mov qword [rsp + 0x78], rsi
lea rax, [rbx + 8]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r14
lea r14, [r13 + 8]
sub r13, rbx
mov qword [rsp + 0x20], r14
mov qword [rsp + 0x80], r13
nop dword [rax]
mov rcx, qword [r15 + 8]
lea rbp, [0x140326800]
mov r11d, dword [rax - 8]
lea r14, [0x140326700]
mov edi, dword [rax - 4]
mov r13d, 4
mov ebx, dword [rax]
mov esi, dword [rax + 4]
lea r12, [rcx + 0x70]
lea r15, [rcx + 0x74]
bswap r11d
bswap edi
bswap ebx
bswap esi
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 + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, ebx
xor r8d, dword [r12 + 8]
movzx ecx, byte [rcx + r14]
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 + r14]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
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 + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
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, dword [r15]
xor r8d, r11d
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
movzx ecx, byte [rdx + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, r11d
xor r8d, dword [r12]
movzx ecx, byte [rcx + r14]
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 + r14]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
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 + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
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 + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, ebx
xor r8d, dword [r12 - 8]
movzx ecx, byte [rcx + r14]
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 + r14]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
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 + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
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 + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
mov r8d, r11d
xor r8d, dword [r12 - 0x10]
movzx ecx, byte [rcx + r14]
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 + r14]
imul r10d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r10d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r10d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
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 + r14]
imul r9d, ecx, 0x1010101
mov ecx, r8d
shr rcx, 0x18
and r9d, 0xf3fc3fcf
movzx ecx, byte [rcx + rbp]
imul edx, ecx, 0x1010101
mov ecx, r8d
shr ecx, 8
and edx, 0xcff3fc3f
xor r9d, edx
movzx edx, cl
movzx ecx, byte [rdx + rbp]
imul edx, ecx, 0x1010101
movzx ecx, r8b
movzx ecx, byte [rcx + r14]
and edx, 0xfc3fcff3
xor r9d, edx
imul edx, ecx, 0x1010101
and edx, 0x3fcff3fc
xor r9d, edx
lea r15, [r15 - 0x20]
xor esi, r9d
lea r12, [r12 - 0x20]
lea ecx, [r9 + r10]
xor ebx, ecx
sub r13, 1
jne 0x14027e9c0
mov r14, qword [rsp + 0x20]
mov r13, qword [rsp + 0x80]
mov r15, qword [rsp + 0x70]
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 + 0x88], 1
mov qword [rsp + 0x20], r14
jne 0x14027e980
mov r14, qword [rsp + 0x30]
mov r12, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x78]
add rsp, 0x48
pop r15
pop r13
pop rbp
pop rbx
ret