Function at 0x1801dcc50
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r14
sub rsp, 0x58
mov r14d, dword [rsp + 0xb0]
mov r12, rcx
movsxd rbp, edx
mov ebx, 1
mov ecx, r14d
mov esi, r9d
shl ebx, cl
mov rdi, r8
mov qword [rsp + 0x30], r8
mov dword [rsp + 0x24], ebp
cmp ebp, dword [r12 + 0xc]
jg 0x1801dcc94
mov rax, r12
jmp 0x1801dcc9e
mov edx, ebp
mov rcx, r12
call fcn.18018a410
test rax, rax
jne 0x1801dccb0
add rsp, 0x58
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov qword [rsp + 0x48], rbp
cmp r14d, 3
jg 0x1801dcd24
xor r10d, r10d
test ebp, ebp
jle 0x1801dcecf
movsxd r14, ebx
shl r14, 2
nop dword [rax]
xor r9d, r9d
xor eax, eax
test ebx, ebx
jle 0x1801dcd0b
mov r8, rdi
nop dword [rax]
mov ecx, eax
inc eax
lea r8, [r8 + 4]
xor ecx, esi
lea edx, [rcx - 1]
not ecx
shr edx, 0x1f
shr ecx, 0x1f
and edx, ecx
mov ecx, dword [r8 - 4]
neg edx
and edx, 1
neg edx
and edx, ecx
or r9d, edx
cmp eax, ebx
jl 0x1801dcce0
mov rax, qword [r12]
inc r10
add rdi, r14
mov dword [rax + r10*4 - 4], r9d
cmp r10, rbp
jl 0x1801dccd0
jmp 0x1801dcecf
lea ecx, [r14 - 2]
mov edx, esi
mov r8d, 1
sar edx, cl
shl r8d, cl
mov qword [rsp + 0x50], r15
lea ecx, [rdx - 1]
lea eax, [r8 - 1]
xor r15d, r15d
shr ecx, 0x1f
and esi, eax
mov eax, edx
not eax
movsxd r14, r8d
mov qword [rsp + 0x28], r15
shr eax, 0x1f
and ecx, eax
mov eax, edx
neg ecx
xor eax, 1
and ecx, 1
neg ecx
mov dword [rsp + 0x98], ecx
lea ecx, [rax - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
mov eax, edx
xor edx, 3
neg ecx
xor eax, 2
and ecx, 1
neg ecx
mov dword [rsp + 0xa0], ecx
lea ecx, [rax - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
neg ecx
and ecx, 1
neg ecx
mov dword [rsp + 0x20], ecx
lea ecx, [rdx - 1]
not edx
shr ecx, 0x1f
shr edx, 0x1f
and ecx, edx
neg ecx
and ecx, 1
neg ecx
mov dword [rsp + 0xb0], ecx
test ebp, ebp
jle 0x1801dceca
movsxd rax, ebx
mov qword [rsp + 0xa8], r13
shl rax, 2
mov qword [rsp + 0x40], rax
nop
xor r11d, r11d
xor r10d, r10d
test r14, r14
jle 0x1801dce98
mov r12d, dword [rsp + 0x98]
mov r15d, dword [rsp + 0xa0]
mov rax, r14
neg rax
lea r9, [rdi + r14*8]
mov edi, dword [rsp + 0x20]
lea r13, [rax*4]
mov rax, r14
mov rbx, r14
neg rax
lea rax, [rax*8]
mov rbp, rax
nop dword [rax]
mov eax, dword [r9 + r14*4]
mov r8d, r10d
inc r10d
and eax, ecx
mov ecx, dword [r9]
mov edx, dword [r13 + r9]
and ecx, edi
xor r8d, esi
and edx, r15d
or ecx, eax
mov eax, dword [r9 + rbp]
lea r9, [r9 + 4]
or edx, ecx
lea ecx, [r8 - 1]
and eax, r12d
shr ecx, 0x1f
or eax, edx
not r8d
shr r8d, 0x1f
and ecx, r8d
neg ecx
and ecx, 1
neg ecx
and ecx, eax
or r11d, ecx
mov ecx, dword [rsp + 0xb0]
dec rbx
jne 0x1801dce30
mov rdi, qword [rsp + 0x30]
mov r15, qword [rsp + 0x28]
mov r12, qword [rsp + 0x90]
add rdi, qword [rsp + 0x40]
mov rax, qword [r12]
inc r15
mov dword [rax + r15*4 - 4], r11d
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x30], rdi
cmp r15, qword [rsp + 0x48]
jl 0x1801dcde0
mov ebp, dword [rsp + 0x24]
mov r13, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x50]
mov dword [r12 + 8], ebp
test ebp, ebp
jle 0x1801dcefb
lea eax, [rbp - 1]
movsxd rcx, eax
mov rax, qword [r12]
lea rdx, [rax + rcx*4]
mov ecx, dword [rdx]
lea rdx, [rdx - 4]
test ecx, ecx
jne 0x1801dcef6
dec ebp
test ebp, ebp
jg 0x1801dcee6
mov dword [r12 + 8], ebp
mov eax, 1
add rsp, 0x58
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret