Function at 0x140003420
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
mov rbp, rsp
sub rsp, 0x60
mov qword [rbp - 0x18], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r14
mov r14d, edx
mov rsi, rcx
mov eax, dword [0x1401ddd80]
imul eax, eax
and eax, 0x8000000f
jge 0x140003460
dec eax
or eax, 0xfffffff0
inc eax
cmp eax, 8
jne 0x14000349a
lea ecx, [rax + 0x20]
call fcn.1400d68e8
mov rdi, rax
xor ebx, ebx
call fcn.1400d7b94
add eax, dword [0x1401ddd80]
mov dword [rdi + rbx*4], eax
inc rbx
cmp rbx, 0xa
jl 0x140003472
mov ecx, dword [rdi + 0x24]
mov dword [0x1401ddd80], ecx
mov rcx, rdi
call fcn.1400d834c
mov edi, 0x80004005
test byte [rbp + 0x30], 1
je 0x140003815
lea rcx, [0x1401d59a8]
mov rax, qword [0x1401d59a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x40], rax
mov rdx, qword [rbp + 0x38]
cmp dword [rdx + 0x10], 1
je 0x14000356b
lea rcx, [0x1401d59a8]
mov rax, qword [0x1401d59a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x38], rax
lea rdx, str.invoke_cargs_not_1
test rdx, 0xffffffffffff0000
jne 0x140003519
movzx ebx, dx
mov ecx, ebx
call fcn.1400019e0
test rax, rax
je 0x140003523
mov r8d, ebx
mov rdx, rax
lea rcx, [rbp - 0x38]
call fcn.140002a60
jmp 0x140003523
lea rcx, [rbp - 0x38]
call fcn.140003a70
nop
mov rax, qword [rsi]
lea rdx, [rbp - 0x38]
mov rcx, rsi
call qword [rax + 0x48]
nop
mov rdx, qword [rbp - 0x38]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x14000354a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x40]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140003815
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x140003815
mov rdx, qword [rdx]
cmp word [rdx], 8
je 0x1400035f3
lea rcx, [0x1401d59a8]
mov rax, qword [0x1401d59a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x30], rax
lea rdx, str.invoke_not_bstr
test rdx, 0xffffffffffff0000
jne 0x1400035bd
movzx ebx, dx
mov ecx, ebx
call fcn.1400019e0
test rax, rax
je 0x1400035c7
mov r8d, ebx
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.140002a60
jmp 0x1400035c7
lea rcx, [rbp - 0x30]
call fcn.140003a70
nop
mov rax, qword [rsi]
lea rdx, [rbp - 0x30]
mov rcx, rsi
call qword [rax + 0x48]
nop
mov rdx, qword [rbp - 0x30]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400035ee
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x14000354a
mov rdx, qword [rdx + 8]
or rbx, 0xffffffffffffffff
test rdx, rdx
jne 0x140003604
xor eax, eax
jmp 0x14000361a
mov rax, rbx
nop word [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140003610
mov r8d, eax
lea rcx, [rbp - 0x40]
call fcn.140002770
dec r14d
je 0x1400036b1
lea rcx, [0x1401d59a8]
mov rax, qword [0x1401d59a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x28], rax
lea rdx, str.invoke_wrong_func_name
test rdx, 0xffffffffffff0000
jne 0x140003678
movzx edi, dx
mov ecx, edi
call fcn.1400019e0
test rax, rax
je 0x140003682
mov r8d, edi
mov rdx, rax
lea rcx, [rbp - 0x28]
call fcn.140002a60
jmp 0x140003682
lea rcx, [rbp - 0x28]
call fcn.140003a70
nop
mov rax, qword [rsi]
lea rdx, [rbp - 0x28]
mov rcx, rsi
call qword [rax + 0x48]
nop
mov rdx, qword [rbp - 0x28]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400037fa
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x1400037fa
mov edx, dword [0x1401ddd80]
lea ecx, [rdx + 2]
lea eax, [rdx + 1]
imul ecx, eax
imul ecx, edx
and ecx, 0x8000000f
jge 0x1400036d2
dec ecx
or ecx, 0xfffffff0
inc ecx
cmp ecx, 3
jne 0x140003774
xor r8d, r8d
nop
mov ecx, r8d
and ecx, 1
dec ecx
not ecx
and ecx, edx
mov eax, r8d
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, edx
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
not ecx
and ecx, edx
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, edx
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
not ecx
and ecx, edx
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, edx
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
not ecx
and ecx, edx
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, edx
sar ecx, 1
xor eax, ecx
add edx, eax
inc r8d
cmp r8d, 0x100
jl 0x1400036e0
mov dword [0x1401ddd80], edx
lea rax, [rbp - 0x20]
mov qword [rbp - 0x10], rax
mov rdi, qword [rbp - 0x40]
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi - 8], 0
jl 0x1400037a3
cmp rax, qword [rdi - 0x18]
jne 0x1400037a3
lea r14, [rdi - 0x18]
lock inc dword [rdi - 8]
jmp 0x1400037e1
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi - 0x10]
call qword [rax]
mov r14, rax
test rax, rax
jne 0x1400037bf
call fcn.140002950
int3
mov eax, dword [rdi - 0x10]
mov dword [r14 + 8], eax
mov eax, dword [rdi - 0x10]
inc eax
movsxd rdx, eax
lea r9, [rdx + rdx]
mov r8, rdi
add rdx, rdx
lea rcx, [r14 + 0x18]
call fcn.1400d7bc0
lea rax, [r14 + 0x18]
mov qword [rbp - 0x20], rax
mov rax, qword [rsi]
mov r8, qword [rbp + 0x40]
lea rdx, [rbp - 0x20]
mov rcx, rsi
call qword [rax + 0x40]
xor edi, edi
mov rdx, qword [rbp - 0x40]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140003815
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, edi
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret