Function at 0x1801214c0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
mov rbp, rsp
sub rsp, 0x70
movsxd rax, edx
mov rsi, r8
lea rdx, [rbp - 0x50]
mov rdi, rcx
lea r9, [rax + rax*4]
shl r9, 4
lea rax, str.0_3CB3f2_CBAA_0D19C5D_F2d23B48EC6B43
add r9, rax
sub rdx, r9
nop dword [rax]
movzx eax, byte [r9]
mov byte [rdx + r9], al
lea r9, [r9 + 1]
test al, al
jne 0x180121500
movzx eax, byte [rbp - 0x50]
xor ecx, ecx
mov byte [rbp - 8], al
movzx eax, byte [rbp - 0x4f]
mov byte [rbp - 0x1b], al
movzx eax, byte [rbp - 0x4e]
mov byte [rbp - 0xf], al
movzx eax, byte [rbp - 0x4d]
mov byte [rbp - 0xe], al
movzx eax, byte [rbp - 0x4c]
mov byte [rbp - 0x28], al
movzx eax, byte [rbp - 0x4b]
mov byte [rbp - 7], al
movzx eax, byte [rbp - 0x4a]
mov byte [rbp - 0x18], al
movzx eax, byte [rbp - 0x49]
mov byte [rbp - 6], al
movzx eax, byte [rbp - 0x48]
mov byte [rbp - 0x16], al
movzx eax, byte [rbp - 0x47]
mov byte [rbp - 0x27], al
movzx eax, byte [rbp - 0x46]
mov byte [rbp - 0x23], al
movzx eax, byte [rbp - 0x45]
mov byte [rbp - 0xb], al
movzx eax, byte [rbp - 0x44]
mov byte [rbp - 0x22], al
movzx eax, byte [rbp - 0x43]
mov byte [rbp - 0x20], al
movzx eax, byte [rbp - 0x42]
mov byte [rbp - 0xd], al
movzx eax, byte [rbp - 0x41]
mov byte [rbp - 0x1f], al
movzx eax, byte [rbp - 0x40]
mov byte [rbp - 0x1e], al
movzx eax, byte [rbp - 0x3f]
mov byte [rbp - 0x1d], al
movzx eax, byte [rbp - 0x3e]
mov byte [rbp - 0x24], al
movzx eax, byte [rbp - 0x3d]
mov byte [rbp - 0x26], al
movzx eax, byte [rbp - 0x3c]
mov byte [rbp - 0x13], al
movzx eax, byte [rbp - 0x3b]
mov byte [rbp - 0x11], al
movzx eax, byte [rbp - 0x3a]
mov byte [rbp - 0x10], al
movzx eax, byte [rbp - 0x39]
mov byte [rbp - 0x1c], al
movzx eax, byte [rbp - 0x38]
mov byte [rbp - 0x19], al
movzx eax, byte [rbp - 0x37]
mov byte [rbp - 0x17], al
movzx eax, byte [rbp - 0x36]
mov byte [rbp - 0x12], al
movzx eax, byte [rbp - 0x35]
mov byte [rbp - 0xc], al
movzx eax, byte [rbp - 0x34]
mov byte [rbp - 0x1a], al
movzx eax, byte [rbp - 0x33]
mov byte [rbp - 0xa], al
movzx eax, byte [rbp - 0x32]
mov byte [rbp - 9], al
movzx eax, byte [rbp - 0x31]
mov byte [rbp - 0x21], al
movzx eax, byte [rbp - 0x30]
mov byte [rbp - 0x25], al
movzx eax, byte [rbp - 0x2f]
mov byte [rbp - 0x15], al
movzx eax, byte [rbp - 0x2e]
mov byte [rbp - 5], al
movzx eax, byte [rbp - 0x2d]
mov byte [rbp - 0x14], al
mov byte [rbp - 4], 0
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rbp + rcx - 0x28]
mov byte [rbp + rcx - 0x50], al
lea rcx, [rcx + 1]
test al, al
jne 0x180121620
mov r9, 0xffffffffffffffff
lea rax, [rbp - 0x50]
mov r8, r9
xor ecx, ecx
inc r8
cmp byte [rax + r8], cl
jne 0x180121641
xor r11d, r11d
test r8, r8
je 0x1801216f3
lea rdx, [rbp - 0x28]
lea r10, [rbp - 0x50]
nop
movzx eax, byte [r10]
cmp al, 0x2d
je 0x1801216e1
test ecx, ecx
lea ecx, [rax - 0x30]
je 0x1801216b7
cmp cl, 9
ja 0x180121680
shl al, 4
xor ecx, ecx
or byte [rdx], al
inc rdx
jmp 0x1801216e1
lea ecx, [rax - 0x61]
cmp cl, 5
ja 0x180121696
sub al, 7
xor ecx, ecx
shl al, 4
or byte [rdx], al
inc rdx
jmp 0x1801216e1
lea ecx, [rax - 0x41]
cmp cl, 5
ja 0x1801216ac
sub al, 7
xor ecx, ecx
shl al, 4
or byte [rdx], al
inc rdx
jmp 0x1801216e1
mov al, 0xf0
xor ecx, ecx
or byte [rdx], al
inc rdx
jmp 0x1801216e1
cmp cl, 9
jbe 0x1801216da
lea ecx, [rax - 0x61]
cmp cl, 5
ja 0x1801216c9
lea ecx, [rax - 0x57]
jmp 0x1801216da
lea ecx, [rax - 0x41]
cmp cl, 5
ja 0x1801216d6
lea ecx, [rax - 0x37]
jmp 0x1801216da
movzx ecx, r9b
mov byte [rdx], cl
mov ecx, 1
inc r11d
inc r10
movsxd rax, r11d
cmp rax, r8
jb 0x180121660
mov r11, qword [rdi + 8]
xor edx, edx
mov r8, r9
nop dword [rax]
inc r8
cmp byte [r11 + r8], dl
jne 0x180121700
xor ebx, ebx
test r8, r8
je 0x180121745
xor r10d, r10d
movzx eax, byte [r11]
lea rcx, [r10 + 1]
xor byte [rbp + r10 - 0x28], al
lea r11, [r11 + 1]
lea eax, [rdx + 1]
xor edx, edx
cmp rcx, 0x10
cmovl edx, eax
inc ebx
xor r10d, r10d
movsxd rax, ebx
cmp rcx, 0x10
cmovl r10, rcx
cmp rax, r8
jb 0x180121713
mov r11, qword [rdi + 0x10]
mov r8, r9
nop dword [rax]
inc r8
cmp byte [r11 + r8], 0
jne 0x180121750
xor ebx, ebx
test r8, r8
je 0x1801217a2
movsxd r10, edx
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [r11]
lea rcx, [r10 + 1]
xor byte [rbp + r10 - 0x28], al
lea r11, [r11 + 1]
lea eax, [rdx + 1]
xor edx, edx
cmp rcx, 0x10
cmovl edx, eax
inc ebx
xor r10d, r10d
movsxd rax, ebx
cmp rcx, 0x10
cmovl r10, rcx
cmp rax, r8
jb 0x180121770
mov r8, qword [rdi + 0x18]
inc r9
cmp byte [r8 + r9], 0
jne 0x1801217a6
xor r10d, r10d
test r9, r9
je 0x1801217e5
movsxd rcx, edx
nop dword [rax + rax]
movzx eax, byte [r8]
lea r8, [r8 + 1]
xor byte [rbp + rcx - 0x28], al
inc r10d
lea rax, [rcx + 1]
xor ecx, ecx
cmp rax, 0x10
cmovl rcx, rax
movsxd rax, r10d
cmp rax, r9
jb 0x1801217c0
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x28]
call fcn.180121820
lea r8, [rbp - 0x50]
mov rcx, rsi
lea rdx, str.CLSID_sProcInfo
call fcn.18011d550
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret