Function at 0x14015b11c
Capabilities:
Query or enumerate registry value

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x218]
sub rsp, 0x2e0
mov qword [rbp - 0x50], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
mov rax, qword [0x14017d140]
xor rax, rsp
mov qword [rbp + 0x1d0], rax
mov qword [rbp - 0x78], r8
mov qword [rbp - 0x80], rdx
mov r12, rcx
xor ebx, ebx
mov r14d, ebx
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rbx
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
lea r9, [0x140013388]
xor edx, edx
lea r8d, [rbx + 1]
lea rcx, [0x140017560]
call qword [sym.imp.ole32.dll_CoCreateInstance]
mov esi, eax
test eax, eax
js 0x14015b986
lea r13, [0x140005580]
mov rbx, qword [rsp + 0x58]
xor r15d, r15d
test rbx, rbx
jne 0x14015b1cf
lea r8, [0x140005578]
mov edx, 0x9a
mov rcx, r13
call fcn.1400a8be8
mov rbx, qword [rsp + 0x58]
lea rcx, [0x140015fd0]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rdi, rax
mov qword [rsp + 0x40], rax
test rax, rax
jne 0x14015b1f4
mov ecx, 0x8007000e
call fcn.14001ad98
nop
cmp qword [rsp + 0x60], r15
je 0x14015b20f
lea r8, [0x14000559c]
mov edx, 0x95
mov rcx, r13
call fcn.1400a8be8
mov rax, qword [rbx]
lea r8, [rsp + 0x60]
mov rdx, rdi
mov rcx, rbx
call qword [rax + 0x178]
mov esi, eax
test eax, eax
sets bl
mov rcx, rdi
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test bl, bl
jne 0x14015b986
mov rcx, qword [rsp + 0x58]
xor ebx, ebx
test rcx, rcx
jne 0x14015b260
lea r8, [0x140005578]
mov edx, 0x9a
mov rcx, r13
call fcn.1400a8be8
mov rcx, qword [rsp + 0x58]
mov rax, qword [rcx]
xor r8d, r8d
mov rdx, qword [rsp + 0x60]
call qword [rax + 0xa8]
mov esi, eax
test eax, eax
js 0x14015b986
mov ecx, 0x2000
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
mov rdi, rax
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
lea rdx, [0x14000f460]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
xor esi, esi
test eax, eax
je 0x14015b309
lea r13, [0x14017d3a8]
mov rcx, qword [0x14017d3a8]
cmp rcx, r13
je 0x14015b638
test byte [rcx + 0x1c], 1
je 0x14015b638
cmp byte [rcx + 0x19], 3
jb 0x14015b638
lea edx, [rsi + 0x20]
mov dword [rsp + 0x20], eax
lea r9, [0x14000f460]
lea r8, [0x1400160d0]
mov rcx, qword [rcx + 0x10]
call fcn.14001ecbc
jmp 0x14015b638
lea r13, [0x14017d3a8]
mov dword [rsp + 0x70], reloc.ADVAPI32.dll_TraceEvent
mov dword [rsp + 0x6c], reloc.ADVAPI32.dll_TraceEvent
mov qword [rsp + 0x40], rsi
xor edx, edx
mov r8d, 0x104
lea rcx, [rbp - 0x40]
call sub.msvcrt.dll_memset
lea r11, [rsp + 0x6c]
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x30], rdi
lea rax, [rsp + 0x48]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
lea r9, [rsp + 0x70]
lea r8, [rbp - 0x40]
mov edx, ebx
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
mov r15d, eax
inc ebx
mov dword [rsp + 0x68], ebx
lea rax, [rbp - 0x40]
or rcx, 0xffffffffffffffff
inc rcx
cmp word [rax + rcx*2], si
jne 0x14015b37b
mov r8d, ecx
lea rdx, [rbp - 0x40]
lea rcx, [rsp + 0x40]
call fcn.140081c3c
test eax, eax
jns 0x14015b3ab
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_RaiseException]
test r15d, r15d
jne 0x14015b561
cmp dword [rsp + 0x48], 7
jne 0x14015b56a
mov rbx, rsi
mov rax, qword [r12 + 8]
test rax, rax
je 0x14015b498
cmp rbx, rax
jb 0x14015b3ed
lea r8, [0x140003a50]
mov edx, 0x2c3
lea rcx, [0x140003bf0]
call fcn.1400a8be8
cmp rbx, qword [r12 + 8]
jae 0x14015b5d2
mov rdx, qword [r12]
mov rdx, qword [rdx + rbx*8]
mov rcx, qword [rsp + 0x40]
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14015b41d
inc rbx
mov rax, qword [r12 + 8]
cmp rbx, rax
jb 0x14015b3ed
jmp 0x14015b498
mov rcx, qword [0x14017d3a8]
cmp rcx, r13
je 0x14015b484
test byte [rcx + 0x1c], 1
je 0x14015b484
cmp byte [rcx + 0x19], 4
jb 0x14015b484
cmp rbx, qword [r12 + 8]
jb 0x14015b466
lea r8, [0x140003a50]
mov edx, 0x2c3
lea rcx, [0x140003bf0]
call fcn.1400a8be8
mov rcx, qword [0x14017d3a8]
cmp rbx, qword [r12 + 8]
jae 0x14015b5c7
mov rax, qword [r12]
mov edx, 0x21
mov r9, qword [rax + rbx*8]
lea r8, [0x1400160d0]
mov rcx, qword [rcx + 0x10]
call fcn.14001ec40
nop
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ebx, dword [rsp + 0x68]
jmp 0x14015b310
mov qword [rbp - 0x70], rsi
mov qword [rbp - 0x68], rsi
mov qword [rbp - 0x60], rsi
mov dword [rbp - 0x58], esi
lea rax, [rbp - 0x70]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x58]
mov r8d, dword [rsp + 0x6c]
mov rdx, rdi
lea rcx, [rsp + 0x40]
call fcn.14015b9f4
mov rdi, qword [rbp - 0x70]
mov r14, qword [rbp - 0x68]
test eax, eax
js 0x14015b532
mov rbx, rsi
test r14, r14
je 0x14015b532
mov rcx, qword [rsp + 0x60]
test rcx, rcx
jne 0x14015b502
lea r8, [0x140005578]
mov edx, 0x9a
lea rcx, [0x140005580]
call fcn.1400a8be8
mov rcx, qword [rsp + 0x60]
cmp rbx, r14
jae 0x14015b615
mov rax, qword [rcx]
xor r8d, r8d
mov rdx, qword [rdi + rbx*8]
call qword [rax + 0xa8]
mov esi, eax
test eax, eax
js 0x14015b5dd
inc rbx
cmp rbx, r14
mov esi, 0
jb 0x14015b4db
test rdi, rdi
je 0x14015b5a9
mov rbx, rsi
test r14, r14
je 0x14015b556
mov rcx, qword [rdi + rbx*8]
test rcx, rcx
je 0x14015b54e
mov rax, qword [rcx]
call qword [rax + CoRevokeClassObject]
inc rbx
cmp rbx, r14
jb 0x14015b53f
mov rcx, rdi
call qword [sym.imp.msvcrt.dll_free]
jmp 0x14015b5a9
cmp r15d, 0x103
je 0x14015b5b2
mov rcx, qword [0x14017d3a8]
cmp rcx, r13
je 0x14015b5b2
test byte [rcx + 0x1c], 1
je 0x14015b5b2
cmp byte [rcx + 0x19], 3
jb 0x14015b5b2
mov edx, 0x22
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], ebx
lea r9, [0x14000f460]
lea r8, [0x1400160d0]
mov rcx, qword [rcx + 0x10]
call fcn.140028d10
jmp 0x14015b5b2
mov rdi, qword [rsp + 0x50]
mov ebx, dword [rsp + 0x68]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test r15d, r15d
jne 0x14015b638
jmp 0x14015b310
mov ecx, 0x80070057
call fcn.14001ad98
int3
mov ecx, 0x80070057
call fcn.14001ad98
int3
xor ebx, ebx
test rdi, rdi
je 0x14015b605
mov rcx, qword [rdi + rbx*8]
test rcx, rcx
je 0x14015b5f3
mov rax, qword [rcx]
call qword [rax + CoRevokeClassObject]
inc rbx
cmp rbx, r14
jb 0x14015b5e4
mov rcx, rdi
call qword [sym.imp.msvcrt.dll_free]
nop
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x14015b981
lea r8, [0x140003a50]
mov edx, 0x2cd
lea rcx, [0x140003bf0]
call fcn.1400a8be8
mov ecx, 0x80070057
call fcn.14001ad98
nop
mov rbx, qword [rbp - 0x80]
mov r13, qword [rbx + 8]
mov r14, rsi
test r13, r13
je 0x14015b93c
mov r15, rsi
mov qword [rsp + 0x48], rsi
cmp r14, qword [rbx + 8]
jb 0x14015b67c
lea r8, [0x140003a50]
mov edx, 0x271
lea rcx, [0x140003bf0]
call fcn.1400a8be8
cmp r14, qword [rbx + 8]
jae 0x14015b931
mov r12, qword [rbx]
mov rbx, qword [rsp + 0x58]
test rbx, rbx
jne 0x14015b6a6
lea r8, [0x140005578]
mov edx, 0x9a
lea rcx, [0x140005580]
call fcn.1400a8be8
mov rbx, qword [rsp + 0x58]
lea rcx, [0x140015fc0]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rdi, rax
mov qword [rsp + 0x40], rax
test rax, rax
je 0x14015b926
cmp qword [rsp + 0x48], rsi
je 0x14015b6e3
lea r8, [0x14000559c]
mov edx, 0x95
lea rcx, [0x140005580]
call fcn.1400a8be8
mov rax, qword [rbx]
lea r8, [rsp + 0x48]
mov rdx, rdi
mov rcx, rbx
call qword [rax + 0x178]
mov esi, eax
test eax, eax
sets bl
mov rcx, rdi
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test bl, bl
jne 0x14015b914
lea rcx, [0x140016008]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
mov qword [rsp + 0x40], rax
test rax, rax
je 0x14015b909
lea r8, [rsp + 0x40]
lea rdx, [0x140015ff8]
lea rcx, [rsp + 0x48]
call fcn.14015a70c
mov esi, eax
test eax, eax
sets dil
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
xor ebx, ebx
test dil, dil
jne 0x14015b907
mov rcx, qword [r15 + r12]
test rcx, rcx
jne 0x14015b76f
mov qword [rsp + 0x40], rbx
jmp 0x14015b786
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
mov qword [rsp + 0x40], rax
test rax, rax
je 0x14015b8fc
lea r8, [rsp + 0x40]
lea rdx, [0x140012fd0]
lea rcx, [rsp + 0x48]
call fcn.14015a70c
mov esi, eax
test eax, eax
sets dil
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
xor ebx, ebx
test dil, dil
jne 0x14015b8fa
mov rcx, qword [r15 + r12 + 8]
test rcx, rcx
jne 0x14015b7c9
mov qword [rsp + 0x40], rbx
jmp 0x14015b7e0
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
mov qword [rsp + 0x40], rax
test rax, rax
je 0x14015b8ef
lea r8, [rsp + 0x40]
lea rdx, [0x140016068]
lea rcx, [rsp + 0x48]
call fcn.14015a70c
mov esi, eax
test eax, eax
sets dil
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
xor ebx, ebx
test dil, dil
jne 0x14015b8ed
lea rax, [0x14000f258]
lea rcx, [0x14000f268]
cmp byte [r15 + r12 + 0x10], bl
cmovne rcx, rax
test rcx, rcx
jne 0x14015b835
mov qword [rsp + 0x40], rbx
jmp 0x14015b84c
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
mov qword [rsp + 0x40], rax
test rax, rax
je 0x14015b8e2
lea r8, [rsp + 0x40]
lea rdx, [0x140012ff8]
lea rcx, [rsp + 0x48]
call fcn.14015a70c
mov esi, eax
test eax, eax
sets dil
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test dil, dil
jne 0x14015b8e0
mov rcx, qword [rsp + 0x60]
test rcx, rcx
jne 0x14015b89f
lea r8, [0x140005578]
mov edx, 0x9a
lea rcx, [0x140005580]
call fcn.1400a8be8
mov rcx, qword [rsp + 0x60]
mov rax, qword [rcx]
xor r8d, r8d
mov rdx, qword [rsp + 0x48]
call qword [rax + 0xa8]
mov esi, eax
test eax, eax
js 0x14015b8de
mov rcx, qword [rsp + 0x48]
xor esi, esi
test rcx, rcx
je 0x14015b8c8
mov rax, qword [rcx]
call qword [rax + CoRevokeClassObject]
inc r14
add r15, 0x18
cmp r14, r13
mov rbx, qword [rbp - 0x80]
jb 0x14015b64f
jmp 0x14015b93c
jmp 0x14015b914
jmp 0x14015b914
mov ecx, 0x8007000e
call fcn.14001ad98
nop
jmp 0x14015b914
mov ecx, 0x8007000e
call fcn.14001ad98
nop
jmp 0x14015b914
mov ecx, 0x8007000e
call fcn.14001ad98
nop
jmp 0x14015b914
mov ecx, 0x8007000e
call fcn.14001ad98
nop
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x14015b981
mov rax, qword [rcx]
call qword [rax + CoRevokeClassObject]
jmp 0x14015b981
mov ecx, 0x8007000e
call fcn.14001ad98
int3
mov ecx, 0x80070057
call fcn.14001ad98
nop
mov rbx, qword [rbp - 0x78]
mov rcx, qword [rbx]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], rsi
mov rcx, qword [rsp + 0x58]
test rcx, rcx
jne 0x14015b973
lea r8, [0x140005578]
mov edx, 0x9a
lea rcx, [0x140005580]
call fcn.1400a8be8
mov rcx, qword [rsp + 0x58]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + 0x110]
mov esi, eax
mov r14, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x14015b996
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, r14
call qword [sym.imp.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_]
nop
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14015b9b1
mov rax, qword [rcx]
call qword [rax + CoRevokeClassObject]
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x14015b9c1
mov rax, qword [rcx]
call qword [rax + CoRevokeClassObject]
mov eax, esi
mov rcx, qword [rbp + 0x1d0]
xor rcx, rsp
call fcn.140168920
mov rbx, qword [rsp + 0x338]
add rsp, 0x2e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret