Function at 0x1800cd700
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push r12
push r14
push r15
sub rsp, 0x30
mov r15, qword [rsp + 0x70]
mov rbx, r8
mov r12, qword [rsp + 0x78]
mov r14, rcx
movsxd rsi, r9d
test rdx, rdx
je 0x1800cdadf
test rbx, rbx
je 0x1800cdadf
test r9d, r9d
jle 0x1800cdadf
test r15, r15
je 0x1800cdadf
test r12, r12
je 0x1800cdadf
cmp qword [r15], 0
jne 0x1800cdadf
mov eax, dword [rdx + 0x2c]
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x58], rdi
mov rdi, rsi
movaps xmmword [rsp + 0x20], xmm6
test eax, eax
jne 0x1800cd85b
mov ecx, esi
call qword [r14 + 0x10]
mov r8, rax
test rax, rax
je 0x1800cdac8
xor r9d, r9d
cmp esi, 0x40
jb 0x1800cd82d
lea ecx, [rsi - 1]
movsxd rdx, ecx
add rax, rdx
lea rcx, [rdx + rbx]
cmp r8, rcx
ja 0x1800cd7b4
cmp rax, rbx
jae 0x1800cd82d
mov ecx, esi
and ecx, 0x8000003f
jge 0x1800cd7c5
dec ecx
or ecx, 0xffffffc0
inc ecx
movdqa xmm2, xmmword [0x1801b28a0]
mov eax, esi
sub eax, ecx
mov rdx, rbx
movsxd r10, eax
sub rdx, r8
mov rcx, r8
nop dword [rax]
movdqu xmm0, xmmword [rdx + rcx]
add r9d, 0x40
movdqu xmm1, xmmword [rdx + rcx + 0x10]
pandn xmm0, xmm2
movdqu xmmword [rcx], xmm0
movdqu xmm0, xmmword [rdx + rcx + 0x20]
pandn xmm1, xmm2
movdqu xmmword [rcx + 0x10], xmm1
movdqu xmm1, xmmword [rdx + rcx + 0x30]
pandn xmm0, xmm2
movdqu xmmword [rcx + 0x20], xmm0
pandn xmm1, xmm2
movdqu xmmword [rcx + 0x30], xmm1
add rcx, 0x40
mov rax, rcx
sub rax, r8
cmp rax, r10
jl 0x1800cd7e0
movsxd rax, r9d
cmp rax, rdi
jge 0x1800cda9b
sub rbx, r8
lea rcx, [rax + r8]
sub rdi, rax
movzx eax, byte [rcx + rbx]
lea rcx, [rcx + 1]
not al
mov byte [rcx - 1], al
sub rdi, 1
jne 0x1800cd843
jmp 0x1800cda9b
cmp eax, 1
jne 0x1800cd959
movsx ebp, byte [rdx + 0x30]
mov ecx, esi
movd xmm6, ebp
punpcklbw xmm6, xmm6
punpcklwd xmm6, xmm6
pshufd xmm6, xmm6, 0
call qword [r14 + 0x10]
mov r8, rax
test rax, rax
je 0x1800cdac8
xor r9d, r9d
cmp esi, 0x40
jb 0x1800cd91d
lea eax, [rsi - 1]
movsxd rcx, eax
lea rax, [rcx + rbx]
lea rdx, [rcx + r8]
cmp r8, rax
ja 0x1800cd8af
cmp rdx, rbx
jae 0x1800cd91d
mov ecx, esi
and ecx, 0x8000003f
jge 0x1800cd8c0
dec ecx
or ecx, 0xffffffc0
inc ecx
mov eax, esi
mov rdx, rbx
sub eax, ecx
mov rcx, r8
movsxd r10, eax
sub rdx, r8
movdqu xmm0, xmmword [rdx + rcx]
add r9d, 0x40
movdqu xmm1, xmmword [rdx + rcx + 0x10]
pxor xmm0, xmm6
movdqu xmmword [rcx], xmm0
movdqu xmm0, xmmword [rdx + rcx + 0x20]
pxor xmm1, xmm6
movdqu xmmword [rcx + 0x10], xmm1
movdqu xmm1, xmmword [rdx + rcx + 0x30]
pxor xmm0, xmm6
movdqu xmmword [rcx + 0x20], xmm0
pxor xmm1, xmm6
movdqu xmmword [rcx + 0x30], xmm1
add rcx, 0x40
mov rax, rcx
sub rax, r8
cmp rax, r10
jl 0x1800cd8d0
movsxd rax, r9d
cmp rax, rdi
jge 0x1800cda9b
sub rbx, r8
lea rcx, [rax + r8]
sub rdi, rax
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rcx + rbx]
lea rcx, [rcx + 1]
xor al, bpl
mov byte [rcx - 1], al
sub rdi, 1
jne 0x1800cd940
jmp 0x1800cda9b
cmp eax, 2
jne 0x1800cda5e
movsx ebp, byte [rdx + 0x30]
mov ecx, esi
movd xmm6, ebp
punpcklbw xmm6, xmm6
punpcklwd xmm6, xmm6
pshufd xmm6, xmm6, 0
call qword [r14 + 0x10]
mov r8, rax
test rax, rax
je 0x1800cdac8
xor r9d, r9d
cmp esi, 0x10
jb 0x1800cda30
lea eax, [rsi - 1]
movsxd rcx, eax
lea rax, [rcx + rbx]
lea rdx, [rcx + r8]
cmp r8, rax
ja 0x1800cd9b1
cmp rdx, rbx
jae 0x1800cda30
mov ecx, esi
and ecx, 0x8000000f
jge 0x1800cd9c2
dec ecx
or ecx, 0xfffffff0
inc ecx
movdqa xmm5, xmmword [0x1801b28a0]
mov eax, esi
sub eax, ecx
mov rdx, rbx
movsxd r10, eax
sub rdx, r8
xorps xmm4, xmm4
mov rcx, r8
nop dword [rax]
movdqu xmm0, xmmword [rdx + rcx]
add r9d, 0x10
movdqa xmm3, xmm4
movdqa xmm2, xmm6
pxor xmm2, xmm0
pcmpeqb xmm3, xmm0
movdqu xmm0, xmmword [rcx]
pandn xmm3, xmm5
pand xmm2, xmm3
movdqa xmm1, xmm3
pandn xmm1, xmm0
por xmm2, xmm1
pand xmm2, xmm3
pandn xmm3, xmm4
por xmm2, xmm3
movdqu xmmword [rcx], xmm2
add rcx, 0x10
mov rax, rcx
sub rax, r8
cmp rax, r10
jl 0x1800cd9e0
movsxd rax, r9d
cmp rax, rdi
jge 0x1800cda9b
sub rbx, r8
lea rcx, [rax + r8]
sub rdi, rax
movzx eax, byte [rcx + rbx]
test al, al
je 0x1800cda4f
xor al, bpl
jmp 0x1800cda51
xor al, al
mov byte [rcx], al
inc rcx
sub rdi, 1
jne 0x1800cda42
jmp 0x1800cda9b
cmp eax, 3
jne 0x1800cdac8
movzx ebp, byte [rdx + 0x30]
mov ecx, esi
call qword [r14 + 0x10]
mov r8, rax
test rax, rax
je 0x1800cdac8
test esi, esi
jle 0x1800cda9b
mov rcx, rax
sub rcx, rbx
nop
movzx eax, byte [rbx]
test al, al
je 0x1800cda8f
cmp al, bpl
je 0x1800cda8f
xor al, bpl
mov byte [rcx + rbx], al
inc rbx
sub rdi, 1
jne 0x1800cda80
mov qword [r15], r8
xor eax, eax
mov dword [r12], esi
mov rdi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x50]
movaps xmm6, xmmword [rsp + 0x20]
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop r12
ret
mov rcx, qword [r15]
call qword [r14 + 0x18]
xor r9d, r9d
mov qword [r15], r9
mov dword [r12], r9d
lea eax, [r9 - 3]
jmp 0x1800cdaa4
mov eax, 0xffffffff
jmp 0x1800cdab3