Function at 0x1400394f4
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 0x140039523
mov word [rdx], si
or dword [rbp + 0x50], 0xffffffff
mov r8d, r8d
add r8, r8
cmp rax, r8
jae 0x140039557
mov rax, qword [0x14021eec0]
lea rcx, [0x14021eec0]
mov edx, 0x48d3d3
mov rax, qword [rax + 8]
call qword [case.0x14000c75c.0]
mov eax, dword [rbp + 0x50]
jmp 0x140039785
lea rbx, [0x14018c844]
lea r10, [0x14023ff50]
mov cl, byte [rbx]
or r9d, 0xffffffff
mov rdx, r14
mov dword [rbp + 0x50], r9d
call fcn.1400389d0
mov r13d, eax
cmp eax, 0xffffffff
je 0x14003976f
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 0x1400395b4
cmp dword [rbp - 0x14], esi
jne 0x14003979d
call sub.KERNEL32.dll_GetCurrentThreadId
mov dword [rbp - 0x14], eax
mov edi, esi
cmp edi, 4
jge 0x14003975b
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.140037c94
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 0x140039605
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14000c75c.0]
mov rcx, qword [rbp - 8]
test rcx, rcx
je 0x14003961f
mov qword [rbp - 8], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14000c75c.0]
cmp dword [rbp + 0x50], esi
jne 0x140039736
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 0x140039687
lea ecx, [r8 - 1]
cmp ecx, 1
cmovbe edx, r9d
xor ecx, ecx
test edx, edx
jne 0x1400396c8
lea eax, [r8 - 1]
cmp eax, 1
ja 0x1400396a6
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 0x1400396b4
mov dword [rbp + 0x50], edx
jmp 0x1400396e0
sub r8d, 1
je 0x14003970d
cmp r8d, 1
jne 0x1400396c5
cmp ecx, r8d
je 0x1400396af
mov edx, r9d
mov dword [rbp + 0x50], edx
cmp edx, 0x3f2
je 0x140039712
cmp edx, 0x3fa
je 0x140039712
cmp edx, 6
je 0x140039712
xor esi, esi
test edx, edx
jne 0x140039736
mov rcx, qword [rbp - 0x28]
test rcx, rcx
je 0x140039700
mov qword [rbp - 0x28], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14000c75c.0]
lea rcx, [rbp - 0x20]
call fcn.14002c68c
xor eax, eax
jmp 0x140039785
cmp ecx, r9d
jmp 0x1400396c3
mov rcx, qword [r14 + 0x10]
lea rdx, [0x1401e4860]
xor esi, esi
movzx eax, word [rcx + 0xa]
and eax, 0x1f
shl rax, 5
mov qword [rax + rdx], rsi
call fcn.140036260
mov r12b, 1
mov rcx, qword [rbp - 0x28]
test rcx, rcx
je 0x140039750
mov qword [rbp - 0x28], rsi
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x14000c75c.0]
inc edi
test r12b, r12b
jne 0x1400395b6
lea rcx, [rbp - 0x20]
call fcn.14002c68c
mov r9d, dword [rbp + 0x50]
lea r10, [0x14023ff50]
inc rbx
lea rax, [0x14018c847]
cmp rbx, rax
jne 0x140039565
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.1400320f0
int3