Function at 0x1400165cc
Capabilities:
Query or enumerate registry value

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xa8
xor esi, esi
mov r13, rcx
mov ebx, esi
mov dword [rbp - 0x25], esi
mov dword [rbp + 0x7f], esi
mov dword [rbp - 0x21], esi
mov r14d, esi
mov word [rbp - 9], si
mov dword [rbp - 0x29], ebx
mov dword [rdx], esi
mov qword [r8], rsi
test rcx, rcx
je 0x14001698c
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rsi
lea rax, [rbp - 0x21]
mov qword [rsp + 0x48], rax
lea rax, [rbp + 0x7f]
xor r9d, r9d
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x25]
xor r8d, r8d
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rsi
xor edx, edx
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
je 0x1400166ae
movzx ebx, ax
lea rsi, [0x1400016f0]
or ebx, 0xc0070000
test eax, eax
mov qword [rsp + 0x30], rsi
cmovle ebx, eax
lea rax, [0x140002790]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x1a4
mov r8d, ebx
mov ecx, 1
lea r9, [0x1400026b0]
lea rdx, [0x1400016b8]
call fcn.140013c30
jmp 0x14001698c
mov eax, dword [rbp - 0x25]
test eax, eax
je 0x14001698c
mov edx, eax
xor ecx, ecx
shl rdx, 5
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov r14, rax
test rax, rax
jne 0x1400166fa
lea rsi, [0x1400016f0]
lea rcx, [0x1400017c8]
mov r8d, 0xc0000017
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 0x1b2
mov ebx, r8d
jmp 0x140016691
mov eax, dword [rbp + 0x7f]
mov edi, 1
add eax, edi
lea r12d, [rdi + 0x3f]
mov edx, eax
mov ecx, r12d
mov dword [rbp + 0x7f], eax
add rdx, rdx
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov r15, rax
test rax, rax
jne 0x140016751
lea rcx, [0x1400017c8]
lea rsi, [0x1400016f0]
mov r8d, 0xc0000017
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 0x1bb
mov ecx, edi
mov ebx, r8d
jmp 0x140016696
mov edx, dword [rbp - 0x21]
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov r12, rax
test rax, rax
jne 0x140016793
lea rsi, [0x1400016f0]
lea rcx, [0x1400017c8]
mov r8d, 0xc0000017
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 0x1c3
mov ebx, r8d
jmp 0x14001694a
mov ecx, esi
mov dword [rbp - 0x19], ecx
cmp dword [rbp - 0x25], esi
jbe 0x140016963
lea rsi, [0x1400016f0]
xor edx, edx
mov eax, dword [rbp + 0x7f]
mov word [rbp - 9], dx
lea r9, [rbp - 0x1d]
mov dword [rbp - 0x1d], eax
mov eax, dword [rbp - 0x21]
mov r8, r15
mov dword [rbp - 0x15], eax
lea rax, [rbp - 0x15]
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x11]
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdx
mov edx, ecx
mov rcx, r13
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
xor ecx, ecx
test eax, eax
jne 0x1400169ad
mov eax, dword [rbp - 0x1d]
mov word [r15 + rax*2], cx
mov rcx, r15
call qword [sym.imp.msvcrt.dll__wtoi]
xor edx, edx
mov r13d, eax
test eax, eax
jg 0x140016847
lea rax, [0x1400027f0]
mov qword [rsp + 0x30], r15
lea r9, [0x1400026b0]
mov qword [rsp + 0x28], rax
lea rdx, [0x1400016b8]
mov r8d, 0xc000000d
mov ecx, edi
mov dword [rsp + 0x20], 0x1e4
call fcn.140013c30
xor edx, edx
jmp 0x140016918
mov word [rbp - 9], dx
cmp dword [rbp - 0x15], edx
je 0x1400168a2
cmp dword [rbp - 0x11], 4
je 0x140016892
mov ecx, 0x80070057
lea rax, [0x1400027b0]
mov qword [rsp + 0x30], rsi
mov ebx, ecx
mov r8d, ecx
mov qword [rsp + 0x28], rax
lea r9, [0x1400026b0]
lea rdx, [0x1400016b8]
mov ecx, edi
mov dword [rsp + 0x20], 0x165
call fcn.140013c30
xor edx, edx
jmp 0x1400168a4
mov eax, 0x13
mov word [rbp - 9], ax
mov eax, dword [r12]
mov dword [rbp - 1], eax
mov ebx, edx
mov eax, ebx
btr ebx, 0x1c
bts ebx, 0x1e
test eax, eax
cmove ebx, edx
cmp ebx, 0xc0070057
je 0x140016915
test ebx, ebx
jne 0x14001692e
cmp r13d, 5
je 0x1400168cb
cmp r13d, 8
jne 0x1400168e2
mov eax, 0xb
mov word [rbp - 9], ax
mov eax, edx
sub eax, dword [rbp - 1]
neg eax
sbb ax, ax
mov word [rbp - 1], ax
mov ebx, dword [rbp - 0x29]
mov rax, qword [rbp - 9]
mov word [rbp - 9], dx
mov ecx, ebx
shl rcx, 5
add ebx, edi
mov qword [rcx + r14 + 8], rax
mov rax, qword [rbp - 1]
mov dword [rcx + r14], r13d
mov qword [rcx + r14 + 0x10], rax
mov rax, qword [rbp + 7]
mov dword [rbp - 0x29], ebx
mov qword [rcx + r14 + 0x18], rax
jmp 0x140016918
mov ebx, dword [rbp - 0x29]
mov ecx, dword [rbp - 0x19]
add ecx, edi
mov dword [rbp - 0x19], ecx
cmp ecx, dword [rbp - 0x25]
jae 0x140016961
mov r13, qword [rbp + 0x67]
jmp 0x1400167aa
mov qword [rsp + 0x30], r15
lea rax, [0x140002818]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x1f2
mov r8d, ebx
lea r9, [0x1400026b0]
lea rdx, [0x1400016b8]
mov ecx, edi
call fcn.140013c30
jmp 0x140016975
xor esi, esi
mov rax, qword [rbp + 0x6f]
mov dword [rax], ebx
mov rax, qword [rbp + 0x77]
mov ebx, esi
mov qword [rax], r14
mov r14, rsi
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LocalFree]
test r12, r12
je 0x14001698c
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, dword [rbp - 0x29]
mov rdx, r14
call fcn.1400169e0
mov eax, ebx
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
movzx ebx, ax
mov qword [rsp + 0x30], rsi
or ebx, 0xc0070000
test eax, eax
cmovle ebx, eax
lea rax, [0x1400027d0]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x1dc
jmp 0x140016947