Function at 0x18001f8e0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x50
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x10], 0xfffffffffffffffe
mov qword [rbp + 0x50], rbx
mov qword [rbp + 0x58], rsi
mov qword [rbp + 0x60], rdi
mov rax, qword [0x18008cb00]
xor rax, rbp
mov qword [rbp + 0x18], rax
mov edi, r9d
mov r15, r8
mov rbx, rdx
mov r14, rcx
or r8d, 0xffffffff
xor edx, edx
mov r12, qword [rbp + 0x70]
mov rcx, r12
call fcn.18001a470
test rbx, rbx
je 0x18001f951
or edi, 0x20019
mov r8d, edi
mov rdx, rbx
mov rcx, r14
call fcn.18001e640
mov rsi, rax
jmp 0x18001f954
mov rsi, r14
test rsi, rsi
je 0x18001fba3
call fcn.180029060
test eax, eax
je 0x18001fa9f
test r15, r15
je 0x18001f9ce
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_lstrlenA]
lea r9d, [rax + 1]
lea ecx, [r9 + r9]
movsxd rdx, ecx
lea rax, [rdx + 0xf]
cmp rax, rdx
ja 0x18001f996
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.18002b0c0
sub rsp, rax
lea rbx, [rsp + 0x30]
test rbx, rbx
je 0x18001f9ce
xor edi, edi
mov word [rbx], di
mov dword [rsp + 0x28], r9d
mov qword [rsp + 0x20], rbx
or r9d, 0xffffffff
mov r8, r15
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
jmp 0x18001f9d2
xor edi, edi
mov ebx, edi
lea rax, [rbp]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdi
lea r9, [rbp + 4]
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x18001fb96
mov eax, dword [rbp + 4]
cmp eax, 1
je 0x18001fa16
cmp eax, 2
je 0x18001fa16
cmp eax, 6
je 0x18001fa16
cmp eax, 7
jne 0x18001fb96
mov ecx, dword [rbp]
add ecx, 2
call fcn.18002ae9c
mov r13, rax
mov r8d, dword [rbp]
add r8d, 2
xor edx, edx
mov rcx, rax
call fcn.18002a9c0
lea rdx, [rbp]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x18001fb8e
mov rbx, r13
cmp word [r13], ax
je 0x18001fb72
nop dword [rax]
mov r8, rbx
mov edx, dword [r12 + 8]
mov rcx, r12
call fcn.18001a670
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
and ecx, ecx
lea rbx, [rbx + rcx*2]
cmp word [rbx], ax
jne 0x18001fa70
jmp 0x18001fb72
lea rax, [rbp]
mov qword [rsp + 0x28], rax
xor edi, edi
mov qword [rsp + 0x20], rdi
lea r9, [rbp + 4]
xor r8d, r8d
mov rdx, r15
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x18001fb96
mov eax, dword [rbp + 4]
cmp eax, 1
je 0x18001fae5
cmp eax, 2
je 0x18001fae5
cmp eax, 6
je 0x18001fae5
cmp eax, 7
jne 0x18001fb96
mov ecx, dword [rbp]
add ecx, 2
call fcn.18002ae9c
mov r13, rax
mov r8d, dword [rbp]
add r8d, 2
xor edx, edx
mov rcx, rax
call fcn.18002a9c0
lea rdx, [rbp]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
mov rdx, r15
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x18001fb8e
mov rbx, r13
cmp byte [r13], dil
je 0x18001fb72
mov rdx, rbx
lea rcx, [rbp + 8]
call fcn.180019140
nop
lea r8, [rbp + 8]
mov edx, dword [r12 + 8]
mov rcx, r12
call fcn.18001a6c0
nop
lea rcx, [rbp + 8]
call fcn.180016820
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rbx
repne scasb al, byte [rdi]
not rcx
mov eax, ecx
add rbx, rax
cmp byte [rbx], 0
jne 0x18001fb32
cmp rsi, r14
je 0x18001fb7f
mov rcx, rsi
call fcn.18001e6c0
mov rcx, r13
call fcn.18002af40
mov eax, 1
jmp 0x18001fba5
mov rcx, r13
call fcn.18002af40
cmp rsi, r14
je 0x18001fba3
mov rcx, rsi
call fcn.18001e6c0
xor eax, eax
mov rcx, qword [rbp + 0x18]
xor rcx, rbp
call fcn.18002a990
mov rbx, qword [rbp + 0x50]
mov rsi, qword [rbp + 0x58]
mov rdi, qword [rbp + 0x60]
lea rsp, [rbp + 0x20]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret