Function at 0x18001c0d0
Capabilities:
Encode data using xor

Disassembly:
test r8, r8
je 0x18001c430
mov rax, rsp
push rbp
sub rsp, 0x2f0
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax - 0x10], r12
mov qword [rax - 0x18], r13
mov qword [rax - 0x20], r14
mov qword [rax - 0x28], r15
mov rbp, r8
mov r10, rcx
lea rsi, [rdx + 2]
nop word [rax + rax]
mov rax, qword [r10 + 0x28]
mov r15, qword [r10 + 0x18]
mov r12, qword [r10]
mov r13, qword [r10 + 8]
mov r14, qword [r10 + 0x10]
mov rbx, qword [r10 + 0x20]
mov qword [rsp + 0x2a8], rax
mov rax, qword [r10 + 0x30]
dec rbp
mov qword [rsp + 0x2b0], rax
mov rax, qword [r10 + 0x38]
mov qword [rsp + 0x298], r15
lea r9, [rsp + 0x280]
mov r11, r12
mov qword [rsp + 0x288], r13
mov qword [rsp + 0x2b8], rax
mov qword [rsp + 0x290], r14
xor edi, edi
lea r15, [0x1800cc5c0]
nop word [rax + rax]
movzx eax, byte [rsi - 1]
movzx r8d, byte [rsi - 2]
mov rcx, qword [r9 + 0x30]
shl r8, 8
mov rdx, rbx
mov qword [r9], r11
or r8, rax
movzx eax, byte [rsi]
mov qword [r9 + 0x20], rbx
shl r8, 8
inc rdi
add rsi, 8
or r8, rax
movzx eax, byte [rsi - 7]
sub r9, 8
shl r8, 8
or r8, rax
movzx eax, byte [rsi - 6]
shl r8, 8
or r8, rax
movzx eax, byte [rsi - 5]
shl r8, 8
or r8, rax
movzx eax, byte [rsi - 4]
shl r8, 8
or r8, rax
movzx eax, byte [rsi - 3]
shl r8, 8
or r8, rax
rol rdx, 0x17
mov rax, rbx
ror rax, 0x12
mov qword [r9 + 0x48], r8
xor rdx, rax
mov rax, rbx
ror rax, 0xe
xor rdx, rax
mov rax, rbx
not rax
and rcx, rax
mov rax, qword [r9 + 0x30]
and rax, rbx
xor rcx, rax
mov rax, qword [r9 + 0x20]
add rdx, rcx
mov rcx, r11
add rdx, qword [r15 + rdi*8 - 8]
add rdx, qword [r9 + 0x40]
add r8, rdx
mov rdx, qword [r9 + 0x10]
rol rcx, 0x1e
lea rbx, [r8 + rax]
mov rax, r11
ror rax, 0x1c
xor rcx, rax
mov rax, r11
rol rax, 0x19
xor rcx, rax
mov rax, rdx
and rdx, r11
xor rax, r11
and rax, qword [r9 + 0x18]
mov r11, rax
lea rax, [r8 + rcx]
xor r11, rdx
add r11, rax
cmp rdi, 0x10
jl 0x18001c180
cmp rdi, 0x50
mov r15, qword [r10 + 0x18]
jge 0x18001c38c
lea rax, [0x1800cc5c0]
lea r14, str._...
lea rdi, [rax + rdi*8]
nop word [rax + rax]
mov rcx, qword [r9 + 0x50]
mov rdx, qword [r9 + 0xb8]
mov qword [r9], r11
mov r8, rcx
mov rax, rcx
shr rcx, 6
ror r8, 0x13
rol rax, 3
mov qword [r9 + 0x20], rbx
xor r8, rax
mov rax, rdx
add rdi, 8
xor r8, rcx
mov rcx, rdx
shr rdx, 7
ror rcx, 8
ror rax, 1
sub r9, 8
xor rcx, rax
mov rax, rbx
xor rcx, rdx
mov rdx, rbx
add r8, rcx
mov rcx, qword [r9 + 0x38]
add r8, qword [r9 + 0xc8]
add r8, qword [r9 + 0x80]
rol rdx, 0x17
ror rax, 0x12
xor rdx, rax
mov rax, rbx
mov qword [r9 + 0x48], r8
ror rax, 0xe
xor rdx, rax
mov rax, rbx
not rax
and rcx, rax
mov rax, qword [r9 + 0x30]
and rax, rbx
xor rcx, rax
mov rax, qword [r9 + 0x20]
add rdx, rcx
mov rcx, r11
add rdx, qword [r9 + 0x40]
add rdx, qword [rdi - 8]
add r8, rdx
mov rdx, qword [r9 + 0x10]
rol rcx, 0x1e
lea rbx, [r8 + rax]
mov rax, r11
ror rax, 0x1c
xor rcx, rax
mov rax, r11
rol rax, 0x19
xor rcx, rax
mov rax, rdx
and rdx, r11
xor rax, r11
and rax, qword [r9 + 0x18]
mov r11, rax
lea rax, [r8 + rcx]
xor r11, rdx
add r11, rax
cmp rdi, r14
jl 0x18001c2a0
mov r14, qword [r10 + 0x10]
lea rax, [r12 + r11]
mov qword [r10], rax
mov rax, qword [r9 + 8]
lea rcx, [r13 + rax]
mov rax, qword [r9 + 0x10]
mov qword [r10 + 8], rcx
lea rcx, [r14 + rax]
mov rax, qword [r9 + 0x18]
mov qword [r10 + 0x10], rcx
lea rcx, [r15 + rax]
mov rax, qword [r10 + 0x20]
mov qword [r10 + 0x18], rcx
mov rcx, qword [r10 + 0x28]
add rax, rbx
add rcx, qword [r9 + 0x28]
mov qword [r10 + 0x20], rax
mov qword [r10 + 0x28], rcx
mov rcx, qword [r10 + 0x30]
add rcx, qword [r9 + 0x30]
mov qword [r10 + 0x30], rcx
mov rcx, qword [r10 + 0x38]
add rcx, qword [r9 + 0x38]
mov qword [r10 + 0x38], rcx
test rbp, rbp
jne 0x18001c110
mov r15, qword [rsp + 0x2d0]
mov r14, qword [rsp + 0x2d8]
mov r13, qword [rsp + 0x2e0]
mov r12, qword [rsp + 0x2e8]
mov rdi, qword [rsp + 0x310]
mov rsi, qword [rsp + 0x308]
mov rbx, qword [rsp + 0x300]
add rsp, 0x2f0
pop rbp
repz ret