Function at 0x14005ae90
Capabilities:
Query or enumerate registry value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov r13, rdx
mov rdi, rcx
mov rax, qword [0x1400aa050]
xor rax, rsp
mov qword [rsp + 0xb0], rax
lea rsi, [rsp + 0xa8]
mov rcx, rsi
mov rdx, rdi
call fcn.14005aa20
mov rsi, qword [rsi]
test rsi, rsi
je 0x14005af33
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
mov rcx, 0xffffffff80000001
mov rdx, rsi
xor r8d, r8d
mov r9d, 0x20019
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov ebp, 2
test eax, eax
je 0x14005af3a
mov rcx, rsi
call fcn.1400574f0
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.140058610
mov eax, ebp
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ebp, 2
jmp 0x14005af0d
mov r14, qword [rsp + 0xa0]
lea rax, [rsp + 0x88]
mov qword [rsp + 0x20], rax
lea rdx, [0x1400a293c]
mov rcx, r14
xor r8d, r8d
mov r9d, 0x20019
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x14005af81
mov ebp, 2
test r14, r14
je 0x14005af05
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x14005af05
mov rbp, qword [rsp + 0x88]
lea rax, [rsp + 0x98]
mov qword [rsp + 0x58], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x50], 0
mov rcx, rbp
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
mov ebx, eax
test rbp, rbp
je 0x14005afd2
mov rcx, rbp
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebp, 2
test ebx, ebx
jne 0x14005af71
lea rcx, [rsp + 0x98]
lea rdx, [rsp + 0x88]
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x14005af6c
lea r12, [rsp + 0x84]
mov dword [r12], 0
mov qword [rsp + 0x30], r12
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
lea rdx, [0x1400a293c]
lea r8, str.ProgId
mov ebp, 2
mov rcx, r14
mov r9d, 2
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
jne 0x14005af71
mov ebx, dword [rsp + 0x84]
and ebx, 0xfffffffe
add rbx, 4
mov rcx, rbx
call fcn.14005753c
mov r15, rax
mov rcx, rax
xor edx, edx
mov r8, rbx
call sub.VCRUNTIME140.dll_memset
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], 0
lea rdx, [0x1400a293c]
lea r8, str.ProgId
mov ebp, 2
mov rcx, r14
mov r9d, 2
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
je 0x14005b0ac
mov rcx, r15
call fcn.1400574f0
jmp 0x14005af71
mov dword [rsp + 0x84], 0
mov qword [rsp + 0x30], r12
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
lea rdx, [0x1400a293c]
lea r8, str.Hash
mov ebp, 2
mov rcx, r14
mov r9d, 2
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
jne 0x14005b09f
mov ebx, dword [rsp + 0x84]
and ebx, 0xfffffffe
add rbx, 4
mov rcx, rbx
call fcn.14005753c
mov rcx, rax
xor edx, edx
mov r8, rbx
mov rbx, rax
call sub.VCRUNTIME140.dll_memset
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], 0
lea rdx, [0x1400a293c]
lea r8, str.Hash
mov ebp, 2
mov rcx, r14
mov r9d, 2
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
je 0x14005b156
mov rcx, rbx
call fcn.1400574f0
jmp 0x14005b09f
mov r12, rbx
movups xmm0, xmmword [rsp + 0x88]
lea rax, [rsp + 0x60]
movaps xmmword [rax], xmm0
mov qword [rsp + 0x20], rax
lea rbx, [rsp + 0x78]
mov rcx, rbx
mov rdx, rdi
mov r8, r13
mov r9, r15
call fcn.14005aab0
mov rdi, qword [rbx]
test rdi, rdi
je 0x14005b1c1
mov dword [rsp + 0x20], 0
mov rcx, rdi
mov edx, 0xffffffff
mov r8, r12
mov r9d, 0xffffffff
call qword [sym.imp.KERNEL32.dll_CompareStringOrdinal]
xor ebp, ebp
cmp eax, 2
setne bpl
mov rcx, rdi
call fcn.1400574f0
mov rbx, r12
jmp 0x14005b149
mov ebp, 2
jmp 0x14005b1bc