Function at 0x140024cb0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x40
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov r14, rcx
xor r12d, r12d
mov dword [rsp + 0x20], r12d
mov r8d, dword [0x1401d6d80]
lea r9d, [r8 + 2]
lea eax, [r8 + 1]
imul r9d, eax
imul r9d, r8d
mov eax, 0x88888889
imul r9d
add edx, r9d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0xf
sub r9d, edx
cmp r9d, 3
jne 0x140024d86
test r8d, r8d
je 0x140024d86
mov eax, r8d
and eax, 0x80000001
jge 0x140024d25
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x140024d3c
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
mov dword [0x1401d6d80], eax
jmp 0x140024d4b
lea r8d, [r8*2 + 1]
mov dword [0x1401d6d80], r8d
mov eax, 0x55555556
imul r8d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
mov ecx, r8d
sub ecx, eax
je 0x140024d6f
sub ecx, 2
je 0x140024d73
dec ecx
je 0x140024d76
jmp 0x140024d81
add r8d, 2
inc r8d
add r8d, 2
mov dword [0x1401d6d80], r8d
test r8d, r8d
jne 0x140024d14
lea rcx, str.D_r_
mov rax, qword [str.D_r_]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x90], rax
call fcn.140028300
mov ebp, eax
mov r9d, dword [0x1401d6d80]
lea r8d, [r9 + 1]
imul r8d, r9d
mov eax, 0x2aaaaaab
imul r8d
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea eax, [rdx + rdx*2]
shl eax, 2
sub r8d, eax
cmp r8d, 9
jne 0x140024e7e
mov r8d, r12d
mov ecx, r8d
and ecx, 1
dec ecx
not ecx
and ecx, r9d
mov eax, r8d
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, r9d
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
not ecx
and ecx, r9d
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, r9d
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
not ecx
and ecx, r9d
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, r9d
sar ecx, 1
xor eax, ecx
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 r8d
cmp r8d, 0x100
jl 0x140024de0
mov dword [0x1401d6d80], r9d
lea rcx, str.D_r_
mov rax, qword [str.D_r_]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x88], rbx
lea r15, str.installtime
test r15, 0xffffffffffff0000
jne 0x140024edc
movzx edi, r15w
mov ecx, edi
call fcn.1400019e0
test rax, rax
je 0x140024f52
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x88]
call fcn.140002960
mov rbx, qword [rsp + 0x88]
jmp 0x140024f52
mov esi, dword [rbx - 0x10]
mov rdi, r15
sub rdi, rbx
sar rdi, 1
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0xc
or eax, ecx
jge 0x140024f14
mov edx, 0xc
lea rcx, [rsp + 0x88]
call fcn.140002760
mov rbx, qword [rsp + 0x88]
movsxd rdx, dword [rbx - 0xc]
mov r9d, 0x18
mov rcx, rbx
add rdx, rdx
cmp rdi, rsi
ja 0x140024f34
lea r8, [rbx + rdi*2]
call fcn.1400d562c
jmp 0x140024f3c
mov r8, r15
call fcn.1400d57ec
cmp dword [rbx - 0xc], 0xc
jl 0x140025095
mov dword [rbx - 0x10], 0xc
mov word [rbx + 0x18], r12w
mov r9d, ebp
mov r8, rbx
lea rdx, str._s_d
lea rcx, [rsp + 0x90]
call fcn.1400124a0
mov ecx, dword [0x1401d6d80]
mov r8d, ecx
imul r8d, ecx
imul r8d, ecx
mov eax, 0x2aaaaaab
imul r8d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
shl eax, 3
sub r8d, eax
or rsi, 0xffffffffffffffff
cmp r8d, 6
jne 0x140024fe7
mov rax, qword [str.cLdp56u4Y]
mov qword [rsp + 0x30], rax
movzx eax, word [0x1401591b8]
mov word [rsp + 0x38], ax
lea rax, [rsp + 0x30]
mov rcx, rsi
inc rcx
cmp byte [rax + rcx], 0
jne 0x140024fc2
mov eax, 4
mul rcx
cmovo rax, rsi
mov rcx, rax
call fcn.1400d4448
mov rcx, rax
call fcn.1400d5528
mov rdi, qword [rsp + 0x90]
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi - 8], 0
jl 0x14002501a
cmp rax, qword [rdi - 0x18]
jne 0x14002501a
lea rbp, [rdi - 0x18]
lock inc dword [rdi - 8]
mov rbx, qword [rsp + 0x88]
jmp 0x140025057
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi - 0x10]
call qword [rax]
mov rbp, rax
test rax, rax
jne 0x140025036
call fcn.140002850
int3
mov eax, dword [rdi - 0x10]
mov dword [rbp + 8], eax
mov eax, dword [rdi - 0x10]
inc eax
movsxd rdx, eax
lea r9, [rdx + rdx]
mov r8, rdi
add rdx, rdx
lea rcx, [rbp + 0x18]
call fcn.1400d57ec
lea rax, [rbp + 0x18]
mov qword [r14], rax
mov dword [rsp + 0x20], 1
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14002507b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lock add dword [rdi - 8], 0xffffffff
jg 0x140025090
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
lea rdx, [rdi - 0x18]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, r14
jmp 0x1400250a0
mov ecx, 0x80070057
call fcn.140001920
nop
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret