Function at 0x140029dc0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
sub rsp, 0x30
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x68], rbx
mov rsi, rcx
xor edi, edi
mov dword [rsp + 0x20], edi
mov r8d, dword [0x1401d5d60]
lea r9d, [r8 + 2]
lea eax, [r8 + 1]
imul r9d, eax
imul r9d, r8d
mov eax, 0x2aaaaaab
imul r9d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
shl eax, 3
sub r9d, eax
cmp r9d, 0x14
jne 0x140029e7d
mov ecx, edi
mov eax, 0x67b23a55
imul r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x4f
mov eax, r8d
sub eax, edx
cmp eax, 0x44
je 0x140029e77
nop dword [rax]
mov eax, r8d
or eax, 0xffffff13
add r8d, eax
inc ecx
mov eax, r8d
imul eax, r8d
cmp ecx, eax
jg 0x140029e77
mov eax, 0x67b23a55
imul r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x4f
mov eax, r8d
sub eax, edx
cmp eax, 0x44
jne 0x140029e40
mov dword [0x1401d5d60], ecx
lea rcx, [rsp + 0x58]
call fcn.1400299e0
nop
mov edx, 0x5c
mov rcx, qword [rsp + 0x58]
call fcn.1400d6158
mov r10, rax
mov rcx, qword [rsp + 0x58]
or ebx, 0xffffffff
test rax, rax
jne 0x140029eac
mov r10d, ebx
jmp 0x140029eb2
sub r10, rcx
sar r10, 1
mov r9d, dword [0x1401d5d60]
lea r8d, [r9 + 2]
lea eax, [r9 + 1]
imul r8d, eax
imul r8d, r9d
mov eax, 0x78787879
imul r8d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x11
sub r8d, edx
cmp r8d, 0xc
jne 0x140029f8a
nop dword [rax + rax]
mov edx, edi
and edx, 1
dec edx
not edx
and edx, r9d
mov eax, edi
sar eax, 1
xor edx, eax
mov eax, edx
and eax, 1
dec eax
not eax
and eax, r9d
sar edx, 1
xor eax, edx
mov edx, eax
and edx, 1
dec edx
not edx
and edx, r9d
sar eax, 1
xor edx, eax
mov eax, edx
and eax, 1
dec eax
not eax
and eax, r9d
sar edx, 1
xor eax, edx
mov edx, eax
and edx, 1
dec edx
not edx
and edx, r9d
sar eax, 1
xor edx, eax
mov eax, edx
and eax, 1
dec eax
not eax
and eax, r9d
sar edx, 1
xor eax, edx
mov edx, eax
and edx, 1
dec edx
not edx
and edx, r9d
sar eax, 1
xor edx, eax
mov eax, edx
and eax, 1
dec eax
not eax
and eax, r9d
sar edx, 1
xor eax, edx
add r9d, eax
inc edi
cmp edi, 0x100
jl 0x140029ef0
mov dword [0x1401d5d60], r9d
cmp r10d, 0xffffffff
jne 0x140029fad
add rcx, 0xffffffffffffffe8
call fcn.1400025c0
add rax, 0x18
mov qword [rsi], rax
mov dword [rsp + 0x20], 1
jmp 0x14002a057
mov r9d, dword [rcx - 0x10]
sub r9d, r10d
lea r8d, [r10 + 1]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x58]
call fcn.14000fe20
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x58]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14002a021
cmp dword [rdi + 0x10], 0
jl 0x14002a012
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14002a012
call fcn.1400025c0
mov rbp, rax
lock add dword [rdi + 0x10], 0xffffffff
jg 0x14002a007
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rbp + 0x18]
mov qword [rsp + 0x58], rax
jmp 0x14002a021
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x58]
call fcn.140002470
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14002a03a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rsp + 0x58]
add rcx, 0xffffffffffffffe8
call fcn.1400025c0
add rax, 0x18
mov qword [rsi], rax
mov dword [rsp + 0x20], 1
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14002a070
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, rsi
mov rbx, qword [rsp + 0x68]
add rsp, 0x30
pop rdi
pop rsi
pop rbp
ret