Function at 0x1800292e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rdi
push r12
push r13
push r15
mov eax, 0x58
call fcn.1801c83e0
sub rsp, rax
mov r13d, dword [rsp + 0xb0]
mov r15, rcx
movsxd rbp, edx
mov ebx, 1
mov ecx, r13d
mov r12d, r9d
shl ebx, cl
mov rdi, r8
mov qword [rsp + 0x28], r8
mov dword [rsp + 0x98], ebp
cmp ebp, dword [r15 + 0xc]
jg 0x180029330
mov rax, r15
jmp 0x18002933a
mov edx, ebp
mov rcx, r15
call fcn.18000ccb0
test rax, rax
jne 0x18002934d
add rsp, 0x58
pop r15
pop r13
pop r12
pop rdi
pop rbp
pop rbx
ret
mov qword [rsp + 0xa8], rsi
cmp r13d, 3
jg 0x1800293c6
xor r10d, r10d
test ebp, ebp
jle 0x180029561
movsxd r11, ebx
shl r11, 3
nop dword [rax]
xor r9d, r9d
xor edx, edx
test ebx, ebx
jle 0x1800293ae
mov r8, rdi
nop dword [rax]
mov ecx, edx
inc edx
add r8, 8
xor ecx, r12d
lea eax, [rcx - 1]
not ecx
shr ecx, 0x1f
shr eax, 0x1f
and ecx, eax
mov rax, qword [r8 - 8]
neg ecx
and ecx, 1
neg rcx
and rcx, rax
or r9, rcx
cmp edx, ebx
jl 0x180029380
mov rax, qword [r15]
inc r10
add rdi, r11
mov qword [rax + r10*8 - 8], r9
cmp r10, rbp
jl 0x180029370
jmp 0x180029561
lea ecx, [r13 - 2]
mov edx, r12d
mov r8d, 1
sar edx, cl
shl r8d, cl
lea ecx, [rdx - 1]
lea eax, [r8 - 1]
movsxd r11, r8d
and r12d, eax
shr ecx, 0x1f
mov eax, edx
not eax
shr eax, 0x1f
and eax, ecx
mov ecx, edx
neg eax
xor ecx, 1
and eax, 1
neg rax
mov qword [rsp + 0x30], rax
lea eax, [rcx - 1]
not ecx
shr eax, 0x1f
shr ecx, 0x1f
and eax, ecx
mov ecx, edx
xor edx, 3
neg eax
xor ecx, 2
and eax, 1
neg rax
mov qword [rsp + 0x38], rax
lea eax, [rcx - 1]
not ecx
shr eax, 0x1f
shr ecx, 0x1f
and eax, ecx
xor ecx, ecx
neg eax
mov qword [rsp + 0x20], rcx
and eax, 1
neg rax
mov qword [rsp + 0x40], rax
lea eax, [rdx - 1]
not edx
shr edx, 0x1f
shr eax, 0x1f
and edx, eax
neg edx
and edx, 1
neg rdx
mov qword [rsp + 0xa0], rdx
test ebp, ebp
jle 0x180029561
movsxd rax, ebx
mov qword [rsp + 0x50], r14
shl rax, 3
mov qword [rsp + 0x48], rax
nop dword [rax]
xor esi, esi
xor r10d, r10d
test r11, r11
jle 0x180029536
mov rbp, qword [rsp + 0x30]
mov r15, qword [rsp + 0x38]
mov r9, r11
shl r9, 4
mov rbx, r11
mov r14, r11
add r9, rdi
mov rdi, qword [rsp + 0x40]
neg rbx
neg r14
mov r13, r11
add rbx, rbx
nop dword [rax]
mov rax, qword [r9 + r11*8]
mov rcx, qword [r9]
mov r8d, r10d
and rax, rdx
mov rdx, qword [r9 + r14*8]
and rcx, rdi
or rcx, rax
mov rax, qword [r9 + rbx*8]
xor r8d, r12d
and rdx, r15
and rax, rbp
inc r10d
or rdx, rcx
lea ecx, [r8 - 1]
not r8d
shr ecx, 0x1f
or rax, rdx
mov rdx, qword [rsp + 0xa0]
shr r8d, 0x1f
add r9, 8
and ecx, r8d
neg ecx
and ecx, 1
neg rcx
and rcx, rax
or rsi, rcx
dec r13
jne 0x1800294c0
mov rdi, qword [rsp + 0x28]
mov ebp, dword [rsp + 0x98]
mov r15, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x20]
mov rax, qword [r15]
add rdi, qword [rsp + 0x48]
inc rcx
mov qword [rax + rcx*8 - 8], rsi
movsxd rax, ebp
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], rdi
cmp rcx, rax
jl 0x180029480
mov r14, qword [rsp + 0x50]
mov rsi, qword [rsp + 0xa8]
mov dword [r15 + 8], ebp
test ebp, ebp
jle 0x180029596
lea eax, [rbp - 1]
movsxd rcx, eax
mov rax, qword [r15]
lea rdx, [rax + rcx*8]
nop
mov rax, qword [rdx]
sub rdx, 8
test rax, rax
jne 0x180029592
dec ebp
test ebp, ebp
jg 0x180029580
mov dword [r15 + 8], ebp
cmp dword [r15 + 8], 0
jne 0x1800295a5
mov dword [r15 + 0x10], 0
mov eax, 1
add rsp, 0x58
pop r15
pop r13
pop r12
pop rdi
pop rbp
pop rbx
ret