Function at 0x14004f9e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r14
mov rbp, rsp
sub rsp, 0x30
mov qword [rbp - 8], 0xfffffffffffffffe
mov rdi, rcx
xor ebx, ebx
mov dword [rbp - 0x10], ebx
lea rcx, [rbp + 0x38]
call fcn.14004fcc0
nop
mov r9d, dword [0x1401d5d60]
mov r8d, r9d
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, 6
jne 0x14004fada
nop dword [rax]
mov ecx, ebx
and ecx, 1
dec ecx
not ecx
and ecx, r9d
mov eax, ebx
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 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
add r9d, eax
inc ebx
cmp ebx, 0x100
jl 0x14004fa40
mov dword [0x1401d5d60], r9d
mov rax, qword [rbp + 0x38]
cmp dword [rax - 0x10], 0
je 0x14004fb00
lea rcx, [rax - 0x18]
call fcn.1400025c0
add rax, 0x18
mov qword [rdi], rax
mov dword [rbp - 0x10], 1
jmp 0x14004fc96
lea rcx, [rbp + 0x40]
call fcn.140050010
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rsi, qword [rbp + 0x38]
add rsi, 0xffffffffffffffe8
cmp rcx, rsi
je 0x14004fb60
cmp dword [rsi + 0x10], 0
jl 0x14004fb52
mov rax, qword [rsi]
cmp qword [rcx], rax
jne 0x14004fb52
call fcn.1400025c0
mov r14, rax
lock add dword [rsi + 0x10], 0xffffffff
jg 0x14004fb48
mov rcx, qword [rsi]
mov r8, qword [rcx]
mov rdx, rsi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [r14 + 0x18]
mov qword [rbp + 0x38], rax
jmp 0x14004fb60
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0x38]
call fcn.140002470
nop
mov rdx, qword [rbp + 0x40]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14004fb78
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rbp + 0x38]
cmp dword [rax - 0x10], 0
je 0x14004fb9e
lea rcx, [rax - 0x18]
call fcn.1400025c0
add rax, 0x18
mov qword [rdi], rax
mov dword [rbp - 0x10], 1
jmp 0x14004fc96
lea rcx, [rbp + 0x48]
call fcn.140050720
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rsi, qword [rbp + 0x38]
add rsi, 0xffffffffffffffe8
cmp rcx, rsi
je 0x14004fbfe
cmp dword [rsi + 0x10], 0
jl 0x14004fbf0
mov rax, qword [rsi]
cmp qword [rcx], rax
jne 0x14004fbf0
call fcn.1400025c0
mov r14, rax
lock add dword [rsi + 0x10], 0xffffffff
jg 0x14004fbe6
mov rcx, qword [rsi]
mov r8, qword [rcx]
mov rdx, rsi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [r14 + 0x18]
mov qword [rbp + 0x38], rax
jmp 0x14004fbfe
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0x38]
call fcn.140002470
nop
mov rdx, qword [rbp + 0x48]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14004fc16
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rbp + 0x38]
cmp dword [rax - 0x10], 0
je 0x14004fc39
lea rcx, [rax - 0x18]
call fcn.1400025c0
add rax, 0x18
mov qword [rdi], rax
mov dword [rbp - 0x10], 1
jmp 0x14004fc96
lea rcx, str.__r_
mov rax, qword [str.__r_]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rdi], rax
lea rdx, [0x14015e918]
test rdx, 0xffffffffffff0000
jne 0x14004fc80
movzx esi, dx
mov ecx, esi
call fcn.1400019e0
test rax, rax
je 0x14004fc8f
mov r8d, esi
mov rdx, rax
mov rcx, rdi
call fcn.140002760
jmp 0x14004fc8f
mov r8d, 3
mov rcx, rdi
call fcn.140002470
nop
mov dword [rbp - 0x10], 1
mov rdx, qword [rbp + 0x38]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14004fcae
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, rdi
add rsp, 0x30
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret