Function at 0x14000ce50
Capabilities:
Encode data using xor
Hash data using sha512
Resolve function by parsing pe exports

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rcx
push rbx
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0xd8
movzx eax, byte [rcx + 1]
mov r9, rdx
movzx r15d, byte [rcx]
movzx ebx, byte [rcx + 8]
shl r15, 8
or r15, rax
shl rbx, 8
movzx eax, byte [rcx + 2]
shl r15, 8
or r15, rax
movzx eax, byte [rcx + 3]
shl r15, 8
or r15, rax
movzx eax, byte [rcx + 4]
shl r15, 8
or r15, rax
movzx eax, byte [rcx + 5]
shl r15, 8
or r15, rax
movzx eax, byte [rcx + 6]
shl r15, 8
or r15, rax
movzx eax, byte [rcx + 7]
shl r15, 8
or r15, rax
movzx eax, byte [rcx + 9]
or rbx, rax
mov qword [rsp + 0x78], r15
movzx eax, byte [rcx + 0xa]
shl rbx, 8
or rbx, rax
movzx eax, byte [rcx + 0xb]
shl rbx, 8
or rbx, rax
movzx eax, byte [rcx + 0xc]
shl rbx, 8
or rbx, rax
movzx eax, byte [rcx + 0xd]
shl rbx, 8
or rbx, rax
movzx eax, byte [rcx + 0xe]
shl rbx, 8
or rbx, rax
movzx eax, byte [rcx + 0xf]
shl rbx, 8
or rbx, rax
mov qword [r11 - 0x88], rbx
movzx eax, byte [rcx + 0x10]
movzx r12d, byte [rcx + 0x11]
shl rax, 8
or r12, rax
movzx eax, byte [rcx + 0x12]
shl r12, 8
or r12, rax
movzx eax, byte [rcx + 0x13]
shl r12, 8
or r12, rax
movzx eax, byte [rcx + 0x14]
shl r12, 8
or r12, rax
movzx eax, byte [rcx + 0x15]
shl r12, 8
or r12, rax
movzx eax, byte [rcx + 0x16]
shl r12, 8
or r12, rax
movzx eax, byte [rcx + 0x17]
shl r12, 8
or r12, rax
mov qword [r11 - 0x80], r12
movzx eax, byte [rcx + 0x18]
movzx r13d, byte [rcx + 0x19]
shl rax, 8
or r13, rax
mov qword [rsp + 0x68], r12
movzx eax, byte [rcx + 0x1a]
shl r13, 8
or r13, rax
movzx eax, byte [rcx + 0x1b]
shl r13, 8
or r13, rax
movzx eax, byte [rcx + 0x1c]
shl r13, 8
or r13, rax
movzx eax, byte [rcx + 0x1d]
shl r13, 8
or r13, rax
movzx eax, byte [rcx + 0x1e]
shl r13, 8
or r13, rax
movzx eax, byte [rcx + 0x1f]
shl r13, 8
or r13, rax
mov qword [r11 - 0x78], r13
movzx eax, byte [rcx + 0x21]
movzx edx, byte [rcx + 0x20]
shl rdx, 8
or rdx, rax
mov qword [rsp + 0x70], r13
movzx eax, byte [rcx + 0x22]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + 0x23]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + 0x24]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + 0x25]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + 0x26]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + 0x27]
shl rdx, 8
or rdx, rax
mov qword [r11 - 0x70], rdx
movzx eax, byte [rcx + 0x29]
movzx r14d, byte [rcx + 0x28]
shl r14, 8
or r14, rax
mov qword [rsp + 0x128], rdx
movzx eax, byte [rcx + 0x2a]
shl r14, 8
or r14, rax
movzx eax, byte [rcx + 0x2b]
shl r14, 8
or r14, rax
movzx eax, byte [rcx + 0x2c]
shl r14, 8
or r14, rax
movzx eax, byte [rcx + 0x2d]
shl r14, 8
or r14, rax
movzx eax, byte [rcx + 0x2e]
shl r14, 8
or r14, rax
movzx eax, byte [rcx + 0x2f]
shl r14, 8
or r14, rax
mov qword [r11 - 0x68], r14
movzx eax, byte [rcx + 0x31]
movzx r11d, byte [rcx + 0x30]
shl r11, 8
or r11, rax
movzx eax, byte [rcx + 0x32]
shl r11, 8
or r11, rax
movzx eax, byte [rcx + 0x33]
shl r11, 8
or r11, rax
movzx eax, byte [rcx + 0x34]
shl r11, 8
or r11, rax
movzx eax, byte [rcx + 0x35]
shl r11, 8
or r11, rax
movzx eax, byte [rcx + 0x36]
shl r11, 8
or r11, rax
shl r11, 8
movzx eax, byte [rcx + 0x37]
movzx ebp, byte [rcx + 0x38]
or r11, rax
movzx eax, byte [rcx + 0x39]
shl rbp, 8
or rbp, rax
mov qword [rsp + 0xa8], r11
movzx eax, byte [rcx + 0x3a]
shl rbp, 8
or rbp, rax
movzx eax, byte [rcx + 0x3b]
shl rbp, 8
or rbp, rax
movzx eax, byte [rcx + 0x3c]
shl rbp, 8
or rbp, rax
movzx eax, byte [rcx + 0x3d]
shl rbp, 8
or rbp, rax
movzx eax, byte [rcx + 0x3e]
shl rbp, 8
or rbp, rax
movzx eax, byte [rcx + 0x3f]
shl rbp, 8
or rbp, rax
mov qword [rsp + 0xb0], rbp
cmp r8, 0x80
jb 0x140011356
mov rcx, qword [rsp + 0x128]
lea r10, [r9 + 0xa]
mov rax, r8
mov qword [rsp + 0x118], rsi
shr rax, 7
mov qword [rsp + 0xc0], rax
imul rax, rax, 0xffffffffffffff80
mov qword [rsp + 0xd0], rdi
add r8, rax
mov qword [rsp + 0xb8], r10
mov qword [rsp + 0x120], r8
nop dword [rax]
nop dword [rax + rax]