Function at 0x140018928
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 8], rbx
mov dword [rsp + 0x20], r9d
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
xor esi, esi
mov eax, r9d
mov r15, rdx
mov r14, rcx
test r8d, r8d
je 0x140018957
mov word [rdx], si
or dword [rbp + 0x50], 0xffffffff
mov r8d, r8d
add r8, r8
cmp rax, r8
jae 0x140018987
mov rcx, qword [0x14007c138]
mov edx, 0x48d3d3
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14003f18e.0]
mov eax, dword [rbp + 0x50]
jmp 0x140018bb6
lea rbx, [0x140049694]
lea r10, [0x14007eb38]
mov cl, byte [rbx]
or r9d, 0xffffffff
mov rdx, r14
mov dword [rbp + 0x50], r9d
call fcn.140017e4c
mov r13d, eax
cmp eax, 0xffffffff
je 0x140018ba0
and qword [rbp - 0x18], 0
mov rcx, r10
mov qword [rbp - 0x20], r10
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, 1
lock xadd dword [rbp - 0x18], ecx
test ecx, ecx
jne 0x1400189e5
cmp dword [rbp - 0x14], esi
jne 0x140018bce
call qword [sym.imp.MSVCP140.dll__Thrd_id]
mov dword [rbp - 0x14], eax
mov edi, esi
cmp edi, 4
jge 0x140018b8c
mov eax, dword [r14 + 0x1c]
lea rcx, [rbp - 0x10]
mov rdx, qword [r14 + 0x10]
mov r9d, r13d
mov dword [rsp + 0x20], eax
mov r12b, sil
mov qword [rbp - 0x28], rsi
call fcn.140017150
mov ecx, dword [rax]
mov dword [rbp + 0x50], ecx
mov rdx, qword [rax + 8]
mov qword [rax + 8], rsi
mov rcx, qword [rbp - 0x28]
mov qword [rbp - 0x28], rdx
test rcx, rcx
je 0x140018a36
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14003f18e.0]
mov rcx, qword [rbp - 8]
test rcx, rcx
je 0x140018a50
mov qword [rbp - 8], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14003f18e.0]
cmp dword [rbp + 0x50], esi
jne 0x140018b67
mov ecx, dword [rbp + 0x58]
mov r9d, 0xffff
mov rax, qword [rbp - 0x28]
xor edx, edx
mov sil, byte [r14 + 0x18]
mov r8, qword [r14]
and sil, 0xf
and dword [rbp - 0x2c], 0
mov dword [rbp - 0x30], ecx
lea rcx, [rbp - 0x30]
mov qword [rsp + 0x30], rcx
lea rcx, [rbp - 0x2c]
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rcx
mov rcx, qword [rax + 0x10]
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
mov r8d, dword [rbp - 0x2c]
mov r9d, 2
mov edx, eax
cmp dword [rbp - 0x30], r9d
jae 0x140018ab8
lea ecx, [r8 - 1]
cmp ecx, 1
cmovbe edx, r9d
xor ecx, ecx
test edx, edx
jne 0x140018af9
lea eax, [r8 - 1]
cmp eax, 1
ja 0x140018ad7
mov eax, dword [rbp - 0x30]
shr rax, 1
mov word [r15 + rax*2 - 2], cx
mov r8d, dword [rbp - 0x2c]
movzx ecx, sil
cmp r8d, ecx
jne 0x140018ae5
mov dword [rbp + 0x50], edx
jmp 0x140018b11
sub r8d, 1
je 0x140018b3e
cmp r8d, 1
jne 0x140018af6
cmp ecx, r8d
je 0x140018ae0
mov edx, r9d
mov dword [rbp + 0x50], edx
cmp edx, 0x3f2
je 0x140018b43
cmp edx, 0x3fa
je 0x140018b43
cmp edx, 6
je 0x140018b43
xor esi, esi
test edx, edx
jne 0x140018b67
mov rcx, qword [rbp - 0x28]
test rcx, rcx
je 0x140018b31
mov qword [rbp - 0x28], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14003f18e.0]
lea rcx, [rbp - 0x20]
call fcn.1400105e8
xor eax, eax
jmp 0x140018bb6
cmp ecx, r9d
jmp 0x140018af4
mov rcx, qword [r14 + 0x10]
lea rdx, [0x14007c190]
xor esi, esi
movzx eax, word [rcx + 0xa]
and eax, 0x1f
shl rax, 5
mov qword [rax + rdx], rsi
call fcn.140015914
mov r12b, 1
mov rcx, qword [rbp - 0x28]
test rcx, rcx
je 0x140018b81
mov qword [rbp - 0x28], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14003f18e.0]
inc edi
test r12b, r12b
jne 0x1400189e7
lea rcx, [rbp - 0x20]
call fcn.1400105e8
mov r9d, dword [rbp + 0x50]
lea r10, [0x14007eb38]
inc rbx
lea rax, [0x140049697]
cmp rbx, rax
jne 0x140018995
mov eax, r9d
mov rbx, qword [rsp + 0xb0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
xor edx, edx
mov ecx, 0x131f4c4
call fcn.140015658
int3