Function at 0x1800f2880
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push r13
push r14
sub rsp, 0x60
lea rbp, [rsp + 0x40]
mov qword [rbp + 0x10], 0xfffffffffffffffe
mov qword [rbp + 0x40], rbx
mov qword [rbp + 0x48], rsi
mov qword [rbp + 0x50], rdi
mov qword [rbp + 0x58], r12
mov rax, qword [0x18021dd90]
xor rax, rbp
mov qword [rbp + 0x18], rax
mov edi, r9d
mov rbx, r8
mov rsi, rdx
mov r14, rcx
or r8d, 0xffffffff
xor edx, edx
mov r12, qword [rbp + 0x60]
mov rcx, r12
call fcn.1800e9fe0
test rsi, rsi
je 0x1800f28f1
or edi, 0x20019
mov r8d, edi
mov rdx, rsi
mov rcx, r14
call fcn.1800f15b0
mov rsi, rax
jmp 0x1800f28f4
mov rsi, r14
test rsi, rsi
je 0x1800f2b61
call fcn.180127c90
test eax, eax
je 0x1800f29df
lea rax, [rbp]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0
lea r9, [rbp + 4]
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1800f2b54
mov eax, dword [rbp + 4]
cmp eax, 1
je 0x1800f2952
cmp eax, 2
je 0x1800f2952
cmp eax, 6
je 0x1800f2952
cmp eax, 7
jne 0x1800f2b54
mov ecx, dword [rbp]
add ecx, 2
call fcn.1800f8d24
mov r13, rax
mov r8d, dword [rbp]
add r8d, 2
xor edx, edx
mov rcx, rax
call fcn.1800f8b90
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 0x1800f2b4c
mov rbx, r13
cmp word [r13], ax
je 0x1800f2b30
nop dword [rax + rax]
mov r8, rbx
mov edx, dword [r12 + 8]
mov rcx, r12
call fcn.1800ea1e0
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 0x1800f29b0
jmp 0x1800f2b30
test rbx, rbx
je 0x1800f2a51
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea edx, [rax + rax + 2]
movsxd rax, edx
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x1800f2a07
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1800fb440
sub rsp, rcx
lea rdi, [rsp + 0x40]
test rdi, rdi
je 0x1800f2a51
mov byte [rdi], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x20], rdi
or r9d, 0xffffffff
mov r8, rbx
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
jmp 0x1800f2a53
xor edi, edi
lea rax, [rbp]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0
lea r9, [rbp + 4]
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x1800f2b54
mov eax, dword [rbp + 4]
cmp eax, 1
je 0x1800f2a9b
cmp eax, 2
je 0x1800f2a9b
cmp eax, 6
je 0x1800f2a9b
cmp eax, 7
jne 0x1800f2b54
mov ecx, dword [rbp]
add ecx, 2
call fcn.1800f8d24
mov r13, rax
mov r8d, dword [rbp]
add r8d, 2
xor edx, edx
mov rcx, rax
call fcn.1800f8b90
lea r11, [rbp]
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x1800f2b4c
mov rbx, r13
cmp byte [r13], al
je 0x1800f2b30
nop dword [rax + rax]
mov rdx, rbx
lea rcx, [rbp + 8]
call fcn.1800e95c0
nop
lea r8, [rbp + 8]
mov edx, dword [r12 + 8]
mov rcx, r12
call fcn.1800ea230
nop
lea rcx, [rbp + 8]
call fcn.1800e5c00
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 0x1800f2af0
cmp rsi, r14
je 0x1800f2b3d
mov rcx, rsi
call fcn.1800f1630
mov rcx, r13
call fcn.1800f8dc8
mov eax, 1
jmp 0x1800f2b63
mov rcx, r13
call fcn.1800f8dc8
cmp rsi, r14
je 0x1800f2b61
mov rcx, rsi
call fcn.1800f1630
xor eax, eax
mov rcx, qword [rbp + 0x18]
xor rcx, rbp
call fcn.1800f98f0
mov rbx, qword [rbp + 0x40]
mov rsi, qword [rbp + 0x48]
mov rdi, qword [rbp + 0x50]
mov r12, qword [rbp + 0x58]
lea rsp, [rbp + 0x20]
pop r14
pop r13
pop rbp
ret