Function at 0x1800ceca0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push r12
push r15
sub rsp, 0xd0
mov rax, qword [0x1801459c0]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x118]
mov rsi, rcx
mov r12, qword [rsp + 0x128]
mov dword [rsp + 0x34], r9d
mov qword [rsp + 0x40], r8
mov r15d, edx
mov qword [rsp + 0x38], rax
test rax, rax
jne 0x1800cecfc
cmp dword [rsp + 0x120], eax
jbe 0x1800cecfc
mov eax, 0xffffff7c
jmp 0x1800cefc4
mov qword [rsp + 0xc0], rbp
mov ecx, r9d
mov qword [rsp + 0xb8], rdi
call fcn.1800c1f30
movsxd rdi, eax
test eax, eax
js 0x1800cf0d8
lea ecx, [rdi*2 + 2]
cmp r15d, ecx
jb 0x1800cf0d8
mov rcx, r15
mov qword [rsp + 0xc8], rbx
call fcn.18009e920
mov rbx, rax
test rax, rax
jne 0x1800ced4f
lea eax, [rbx - 0x7d]
jmp 0x1800cefac
mov r8, r15
mov qword [rsp + 0xb0], r13
xor edx, edx
mov rcx, rbx
call fcn.1800dc610
mov r13d, dword [rsp + 0x110]
lea eax, [rdi + 1]
mov r8d, r15d
movsxd rdx, eax
sub r8d, edi
add rdx, rsi
dec r8d
mov ecx, r13d
mov dword [rsp + 0x30], r8d
sub ecx, 1
je 0x1800cedc3
sub ecx, 1
je 0x1800cedbc
sub ecx, 1
je 0x1800cedb5
cmp ecx, 0x17
je 0x1800cedae
mov rcx, rbx
mov ebp, 0xffffff53
call fcn.18009e900
mov eax, ebp
jmp 0x1800cefa4
mov ecx, 4
jmp 0x1800cedc8
mov ecx, 8
jmp 0x1800cedc8
mov ecx, 7
jmp 0x1800cedc8
mov ecx, 6
mov eax, edi
mov qword [rsp + 0x28], r12
mov r10, r12
mov dword [rsp + 0x20], eax
mov r9, rbx
call fcn.1800cdd60
mov ebp, eax
test eax, eax
je 0x1800cedf3
mov rcx, rbx
call fcn.18009e900
mov eax, ebp
jmp 0x1800cefa4
mov qword [rsp + 0xa8], r14
xor r14d, r14d
mov r8d, r14d
test edi, edi
je 0x1800cef33
cmp edi, 8
jb 0x1800cef08
lea edx, [rdi - 1]
mov eax, edi
add rdx, rbx
lea rcx, [rsi + 1]
add rax, rsi
cmp rbx, rax
ja 0x1800cee2f
cmp rdx, rcx
jae 0x1800cef08
cmp edi, 0x40
jb 0x1800ceecd
mov r9d, edi
mov r11d, edi
and r9d, 0x3f
sub r11d, r9d
mov r10d, 0x11
nop dword [rax + rax]
mov edx, r8d
lea eax, [r10 - 0x10]
movdqu xmm1, xmmword [rax + rsi]
mov eax, r10d
lea ecx, [r10 - 1]
add r8d, 0x40
movdqu xmm0, xmmword [rdx + rbx]
pxor xmm1, xmm0
movdqu xmmword [rdx + rbx], xmm1
lea edx, [r10 + 0xf]
movdqu xmm0, xmmword [rcx + rbx]
movdqu xmm1, xmmword [rax + rsi]
lea eax, [r10 + 0x10]
pxor xmm1, xmm0
movdqu xmmword [rcx + rbx], xmm1
movdqu xmm0, xmmword [rdx + rbx]
movdqu xmm1, xmmword [rax + rsi]
lea eax, [r10 + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rdx + rbx], xmm1
lea edx, [r10 + 0x1f]
add r10d, 0x40
movdqu xmm0, xmmword [rdx + rbx]
movdqu xmm1, xmmword [rax + rsi]
pxor xmm1, xmm0
movdqu xmmword [rdx + rbx], xmm1
cmp r8d, r11d
jb 0x1800cee50
cmp r9d, 8
jb 0x1800cef03
mov eax, edi
mov r9d, edi
and eax, 7
sub r9d, eax
nop dword [rax + rax]
mov edx, r8d
lea eax, [r8 + 1]
movq xmm1, qword [rax + rsi]
add r8d, 8
movq xmm0, qword [rdx + rbx]
pxor xmm1, xmm0
movq qword [rdx + rbx], xmm1
cmp r8d, r9d
jb 0x1800ceee0
cmp r8d, edi
jae 0x1800cef33
mov ecx, r8d
lea edx, [r8 + 1]
add rcx, rbx
add rdx, rsi
mov eax, edi
sub eax, r8d
mov r8d, eax
nop dword [rax]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub r8, 1
jne 0x1800cef20
lea r9, [rbx + rdi]
sub r13d, 1
je 0x1800cef6b
sub r13d, 1
je 0x1800cef64
sub r13d, 1
je 0x1800cef5d
cmp r13d, 0x17
je 0x1800cef56
mov ebp, 0xffffff53
jmp 0x1800cef92
mov ecx, 4
jmp 0x1800cef70
mov ecx, 8
jmp 0x1800cef70
mov ecx, 7
jmp 0x1800cef70
mov ecx, 6
mov r13d, dword [rsp + 0x30]
mov r8d, edi
mov eax, r13d
mov qword [rsp + 0x28], r12
mov rdx, rbx
mov dword [rsp + 0x20], eax
call fcn.1800cdd60
mov ebp, eax
test eax, eax
je 0x1800cefe1
mov rcx, rbx
call fcn.18009e900
mov eax, ebp
mov r14, qword [rsp + 0xa8]
mov r13, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xc8]
mov rbp, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.1800d9ea0
add rsp, 0xd0
pop r15
pop r12
pop rsi
ret
test r13d, r13d
je 0x1800cf007
mov ecx, edi
mov r9d, r13d
nop dword [rax + rax]
lea r8d, [rcx + 1]
mov eax, ecx
movzx ecx, byte [rax + rbx]
xor byte [r8 + rsi], cl
mov ecx, r8d
sub r9, 1
jne 0x1800ceff0
mov rcx, rbx
call fcn.18009e900
lea ebx, [rdi*2 + 1]
cmp ebx, r15d
jae 0x1800cf030
mov r9d, ebx
add r9, rsi
cmp byte [r9], r14b
jne 0x1800cf030
inc ebx
inc r9
cmp ebx, r15d
jb 0x1800cf021
mov r8d, dword [rsp + 0x120]
lea r9, [rsp + 0x50]
mov rdx, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x34]
mov dword [rsp + 0x20], edi
call fcn.1800c1a70
test eax, eax
jne 0x1800cef9c
test edi, edi
jle 0x1800cf08e
lea rcx, [rsp + 0x50]
mov r9, rdi
sub r9, rcx
mov rdx, r14
add r9, rsi
nop dword [rax]
lea rax, [rsp + 0x50]
add rax, rdx
inc rdx
movzx ecx, byte [rax + r9 + 1]
movzx eax, byte [rax]
xor ecx, eax
or r14d, ecx
cmp rdx, rdi
jl 0x1800cf070
movzx ecx, byte [rsi]
movzx edx, byte [rbx + rsi]
xor edx, 1
add edx, r14d
add edx, ecx
lea eax, [rdx - 1]
not edx
shr eax, 0x1f
shr edx, 0x1f
neg al
neg dl
movsx ecx, al
movsx eax, dl
lea edx, [rbx + 1]
and ecx, eax
mov rax, qword [rsp + 0x40]
and edx, ecx
not ecx
and ecx, r15d
or edx, ecx
mov ecx, edx
add rcx, rsi
sub r15d, edx
mov qword [rax], rcx
mov eax, r15d
jmp 0x1800cef9c
mov eax, 0xffffff53
jmp 0x1800cefb4