Function at 0x180019dd0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
mov rbp, rsp
sub rsp, 0x70
mov qword [rbp - 0x48], 0xfffffffffffffffe
mov rax, qword [0x1801fdc38]
xor rax, rsp
mov qword [rbp - 8], rax
mov edi, r9d
mov esi, r8d
mov rax, rdx
mov rbx, rcx
xor r12d, r12d
mov dword [rbp - 0x50], r12d
xor ecx, ecx
mov qword [rbp - 0x40], r12
mov qword [rbp - 0x38], rcx
cmp qword [rdx + 0x18], 8
jb 0x180019e1b
mov rax, qword [rdx]
lea rdx, [rbp - 0x40]
mov rcx, rax
call qword [sym.imp.ole32.dll_CLSIDFromString]
test eax, eax
jns 0x180019e42
mov esi, 7
mov qword [rbx + 0x18], rsi
mov qword [rbx + 0x10], r12
mov word [rbx], r12w
jmp 0x18001a02c
test dil, dil
movzx ecx, dil
jne 0x180019e50
mov ecx, 0xff
test edi, 0xff00
je 0x180019e62
mov eax, edi
sar eax, 8
movzx edx, al
jmp 0x180019e67
mov edx, 0xff
xor cl, dl
test edi, 0xff0000
je 0x180019e7b
mov eax, edi
sar eax, 0x10
movzx edx, al
jmp 0x180019e80
mov edx, 0xff
xor cl, dl
test edi, 0xff000000
je 0x180019e8f
shr edi, 0x18
jmp 0x180019e94
mov edi, 0xff
xor cl, dil
test sil, sil
movzx edx, sil
jne 0x180019ea5
mov edx, 0xff
test esi, 0xff00
je 0x180019eb7
mov eax, esi
sar eax, 8
movzx eax, al
jmp 0x180019ebc
mov eax, 0xff
xor dl, al
test esi, 0xff0000
je 0x180019ed0
mov eax, esi
sar eax, 0x10
movzx eax, al
jmp 0x180019ed5
mov eax, 0xff
xor dl, al
test esi, 0xff000000
je 0x180019ee4
shr esi, 0x18
jmp 0x180019ee9
mov esi, 0xff
xor dl, sil
xor cl, dl
test cl, 0xf0
mov eax, 0xf0
cmovne eax, r12d
or cl, al
test cl, 0xf
mov edi, 0xf
cmovne edi, r12d
or dil, cl
movzx eax, dil
movzx edx, ax
shl dx, 8
or dx, ax
movzx eax, dx
mov ecx, eax
shl ecx, 0x10
or ecx, eax
xor dword [rbp - 0x40], ecx
xor word [rbp - 0x3c], dx
xor word [rbp - 0x3a], dx
lea rax, [rbp - 0x38]
nop word [rax + rax]
xor byte [rax], dil
inc rax
lea rcx, [rbp - 0x30]
cmp rax, rcx
jne 0x180019f40
mov qword [rbp - 0x50], r12
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x40]
call qword [sym.imp.ole32.dll_StringFromCLSID]
mov esi, 7
mov qword [rbp - 0x18], rsi
mov qword [rbp - 0x20], r12
mov word [rbp - 0x30], r12w
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdx, qword [rbp - 0x50]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rbp - 0x30]
call fcn.180015970
nop
mov rcx, qword [rbp - 0x50]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov qword [rbx + 0x18], rsi
mov qword [rbx + 0x10], r12
mov word [rbx], r12w
lea rax, [rbp - 0x30]
cmp rbx, rax
je 0x18001a019
cmp qword [rbx + 0x18], 8
jb 0x180019fc2
mov rcx, qword [rbx]
call fcn.1801196dc
mov qword [rbx + 0x18], rsi
mov qword [rbx + 0x10], r12
mov word [rbx], r12w
mov rcx, qword [rbp - 0x18]
cmp rcx, 8
jae 0x180019ff3
mov r8, qword [rbp - 0x20]
lea r8, [r8 + r8 + 2]
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.180119850
mov rcx, qword [rbp - 0x18]
jmp 0x180019ffe
mov rax, qword [rbp - 0x30]
mov qword [rbx], rax
mov qword [rbp - 0x30], r12
mov rax, qword [rbp - 0x20]
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rcx
mov qword [rbp - 0x18], rsi
mov qword [rbp - 0x20], r12
mov word [rbp - 0x30], r12w
jmp 0x18001a01d
mov rsi, qword [rbp - 0x18]
cmp rsi, 8
jb 0x18001a02c
mov rcx, qword [rbp - 0x30]
call fcn.1801196dc
mov rax, rbx
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.180119820
add rsp, 0x70
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret