Function at 0x123a0
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x7b0
mov rax, qword [0x0002b100]
xor rax, rsp
mov qword [rsp + 0x7a0], rax
mov r13d, 1
mov rbp, r9
mov qword [rsp + 0xe8], r9
mov r15, r8
mov rdi, rdx
mov qword [rsp + 0xf0], rdx
cmp ecx, r13d
jne 0x125f1
xor ebx, ebx
lea r8d, [r13 + 0x27]
lea rcx, [rsp + 0xc0]
xor edx, edx
mov qword [rsp + 0x40], rbx
mov dword [rsp + 0xb8], ebx
call fcn.00025100
lea rcx, [rsp + 0x3a2]
xor edx, edx
mov r8d, 0x3fe
mov word [rsp + 0x3a0], bx
call fcn.00025100
xor r11d, r11d
lea rax, [rsp + 0x3a0]
mov qword [rsp + 0x4a], r11
mov dword [rsp + 0x52], r11d
mov word [rsp + 0x56], r11w
mov qword [rsp + 0x50], rax
mov eax, 0x39c
lea rdx, [rsp + 0x78]
mov word [rsp + 0x4a], ax
lea eax, [rbx + 0x24]
lea rcx, [rsp + 0x48]
mov word [rsp + 0x78], ax
lea eax, [rbx + 0x26]
mov word [rsp + 0x48], bx
mov word [rsp + 0x7a], ax
lea rax, [0x000252e0]
mov qword [rsp + 0x80], rax
call qword [sym.imp.ntoskrnl.exe_RtlCopyUnicodeString]
lea rcx, [rsp + 0x48]
mov rdx, rdi
call qword [sym.imp.ntoskrnl.exe_RtlAppendUnicodeStringToString]
lea rax, [rsp + 0x48]
lea r8, [rsp + 0xb8]
lea rcx, [rsp + 0x40]
mov edx, 0x20019
mov qword [rsp + 0xc8], rax
mov dword [rsp + 0xb8], 0x30
mov qword [rsp + 0xc0], rbx
mov dword [rsp + 0xd0], 0x240
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xe0], rbx
call qword [sym.imp.ntoskrnl.exe_ZwOpenKey]
cmp eax, ebx
jl 0x12cdf
lea rcx, [rsp + 0x1a1]
xor edx, edx
mov r8d, 0x1ff
mov byte [rsp + 0x1a0], bl
call fcn.00025100
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x68]
lea esi, [rbx + 2]
xor r9d, r9d
mov qword [rsp + 0x28], rax
mov rdx, r15
mov r8d, esi
mov dword [rsp + 0x68], ebx
mov dword [rsp + 0x20], ebx
call qword [sym.imp.ntoskrnl.exe_ZwQueryValueKey]
cmp eax, 0xc0000034
je 0x12cd4
mov eax, dword [rsp + 0x68]
cmp eax, ebx
je 0x12cd4
cmp eax, 0xc8
jae 0x12cd4
lea rcx, [rsp + 0x34]
lea r9, [rsp + 0x1a0]
mov r8d, esi
mov qword [rsp + 0x28], rcx
mov rcx, qword [rsp + 0x40]
mov rdx, r15
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0x20], eax
call qword [sym.imp.ntoskrnl.exe_ZwQueryValueKey]
cmp eax, ebx
jl 0x12cd4
mov edx, dword [rsp + 0x34]
lea eax, [rdx - 0xc]
cmp eax, 0xbb
ja 0x12cd4
cmp edx, dword [rsp + 0x810]
ja 0x12cd4
mov eax, dword [rsp + 0x1a8]
cmp eax, 0x1e0
ja 0x125db
cmp eax, dword [rsp + 0x810]
ja 0x125db
lea rdx, [rsp + 0x1ac]
mov r8, rax
mov rcx, rbp
call fcn.00024c10
jmp 0x125de
mov r13b, bl
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_ZwClose]
mov al, r13b
jmp 0x12ce1
mov esi, 2
cmp ecx, esi
jne 0x12cdf
xor eax, eax
xor ebx, ebx
lea rdx, [0x00025310]
lea rcx, [rsp + 0x78]
mov r12b, bl
mov byte [rsp + 0x30], bl
mov word [rsp + 0x78], bx
mov qword [rsp + 0x7a], rax
mov dword [rsp + 0x82], eax
mov word [rsp + 0x86], ax
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
xor r11d, r11d
mov qword [rsp + 0x5a], r11
mov ebp, 0x6020000
mov edi, 0x400
mov ecx, ebp
mov dword [rsp + 0x62], r11d
mov word [rsp + 0x66], r11w
mov word [rsp + 0x58], bx
mov word [rsp + 0x5a], di
call fcn.00024fc4
mov rcx, rdi
call fcn.00012db4
mov qword [rsp + 0x60], rax
cmp rax, rbx
je 0x12cdf
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0x58]
call qword [sym.imp.ntoskrnl.exe_RtlCopyUnicodeString]
xor eax, eax
lea rdx, [0x00025330]
lea rcx, [rsp + 0xa0]
mov word [rsp + 0xa0], bx
mov qword [rsp + 0xa2], rax
mov dword [rsp + 0xaa], eax
mov word [rsp + 0xae], ax
call qword [sym.imp.ntoskrnl.exe_RtlInitUnicodeString]
xor r11d, r11d
mov ecx, ebp
mov word [rsp + 0x48], bx
mov qword [rsp + 0x4a], r11
mov word [rsp + 0x4a], di
mov dword [rsp + 0x52], r11d
mov word [rsp + 0x56], r11w
call fcn.00024fc4
mov rcx, rdi
call fcn.00012db4
mov qword [rsp + 0x50], rax
cmp rax, rbx
jne 0x12708
mov rcx, qword [rsp + 0x60]
mov edx, 0x4d746147
call fcn.00012ebc
jmp 0x12cdf
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0x48]
call qword [sym.imp.ntoskrnl.exe_RtlCopyUnicodeString]
xor edx, edx
lea rcx, [rsp + 0xc0]
lea r8d, [rdx + 0x28]
call fcn.00025100
lea rax, [rsp + 0xa0]
lea r8, [rsp + 0xb8]
lea rcx, [rsp + 0x40]
mov edx, 0x20019
mov qword [rsp + 0xc8], rax
mov dword [rsp + 0xb8], 0x30
mov qword [rsp + 0xc0], rbx
mov dword [rsp + 0xd0], 0x240
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xe0], rbx
mov qword [rsp + 0x40], rbx
call qword [sym.imp.ntoskrnl.exe_ZwOpenKey]
cmp eax, ebx
jge 0x127b2
mov rcx, qword [rsp + 0x60]
mov r11d, 0x4d746147
mov edx, r11d
call fcn.00012ebc
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x60], rbx
mov edx, r11d
jmp 0x126fe
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x34]
xor r9d, r9d
xor r8d, r8d
mov edx, esi
mov dword [rsp + 0x34], ebx
mov qword [rsp + 0x20], rax
call qword [sym.imp.ntoskrnl.exe_ZwQueryKey]
cmp eax, ebx
jge 0x127e9
cmp eax, 0x80000005
je 0x127e9
cmp eax, 0xc0000023
jne 0x12caa
cmp dword [rsp + 0x34], ebx
je 0x12caa
cmp dword [rsp + 0x34], edi
ja 0x12caa
mov ecx, ebp
call fcn.00024fc4
mov r9d, dword [rsp + 0x34]
mov rcx, r9
cmp r9, rbx
je 0x12820
call fcn.00012db4
mov r9d, dword [rsp + 0x34]
mov rbp, rax
jmp 0x12823
mov rbp, rbx
cmp rbp, rbx
je 0x12caa
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x34]
mov r8, rbp
mov edx, esi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ntoskrnl.exe_ZwQueryKey]
cmp eax, ebx
jl 0x12c9d
cmp dword [rsp + 0x34], ebx
je 0x12c9d
mov dil, bl
mov r14d, ebx
cmp dword [rbp + 0x14], ebx
jbe 0x12c4c
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x34]
xor r9d, r9d
mov qword [rsp + 0x28], rax
xor r8d, r8d
mov edx, r14d
mov dword [rsp + 0x20], ebx
call qword [sym.imp.ntoskrnl.exe_ZwEnumerateKey]
cmp eax, ebx
jge 0x1289f
cmp eax, 0x80000005
je 0x1289f
cmp eax, 0xc0000023
jne 0x12c2c
cmp dword [rsp + 0x34], ebx
je 0x12c2c
cmp dword [rsp + 0x34], 0x400
ja 0x12c2c
mov ecx, 0x6020000
call fcn.00024fc4
mov r11d, dword [rsp + 0x34]
mov rcx, r11
cmp r11, rbx
je 0x128dd
call fcn.00012db4
mov r11d, dword [rsp + 0x34]
mov r12, rax
jmp 0x128e0
mov r12, rbx
cmp r12, rbx
je 0x12c47
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x34]
mov r9, r12
mov qword [rsp + 0x28], rax
xor r8d, r8d
mov edx, r14d
mov dword [rsp + 0x20], r11d
call qword [sym.imp.ntoskrnl.exe_ZwEnumerateKey]
cmp eax, ebx
jl 0x12c3a
cmp dword [rsp + 0x34], ebx
je 0x12c3a
xor eax, eax
mov word [rsp + 0x88], bx
mov qword [rsp + 0x8a], rax
mov dword [rsp + 0x92], eax
mov word [rsp + 0x96], ax
movzx ecx, word [r12 + 0xc]
mov word [rsp + 0x88], cx
movzx eax, word [r12 + 0xc]
mov word [rsp + 0x8a], ax
lea rax, [r12 + 0x10]
mov qword [rsp + 0x90], rax
cmp cx, 0x14
jbe 0x12bf7
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x48]
call qword [sym.imp.ntoskrnl.exe_RtlAppendUnicodeStringToString]
xor edx, edx
lea rcx, [rsp + 0x138]
lea r8d, [rdx + 0x68]
mov dword [rsp + 0x9c], ebx
mov dword [rsp + 0x98], ebx
mov qword [rsp + 0x130], rbx
call fcn.00025100
mov eax, 4
mov dword [rsp + 0x150], eax
mov dword [rsp + 0x160], eax
lea rax, [rsp + 0x98]
mov qword [rsp + 0x158], rax
lea r11, [rsp + 0x9c]
lea rax, [0x000253d0]
mov dword [rsp + 0x138], 0x20
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], r11
cmp byte [rsp + 0x818], bl
je 0x12a2c
mov rdx, qword [rsp + 0x50]
lea r8, [rsp + 0x130]
xor r9d, r9d
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call qword [sym.imp.ntoskrnl.exe_RtlQueryRegistryValues]
cmp word [rsp + 0x48], bx
je 0x12bf7
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x58]
call qword [sym.imp.ntoskrnl.exe_RtlAppendUnicodeStringToString]
mov rdx, qword [rsp + 0xf0]
cmp word [rdx], si
jb 0x12a8d
mov rax, qword [rdx + 8]
mov r8d, 0x5c
cmp word [rax], r8w
je 0x12a8d
movzx eax, word [rsp + 0x58]
mov rcx, qword [rsp + 0x60]
shr rax, 1
cmp word [rcx + rax*2 - 2], r8w
je 0x12a8d
mov word [rcx + rax*2], r8w
movzx ecx, word [rsp + 0x58]
mov rax, qword [rsp + 0x60]
shr rcx, 1
mov word [rax + rcx*2 + 2], bx
add word [rsp + 0x58], si
lea rcx, [rsp + 0x58]
call qword [sym.imp.ntoskrnl.exe_RtlAppendUnicodeStringToString]
xor edx, edx
lea rcx, [rsp + 0x100]
lea r8d, [rdx + 0x28]
call fcn.00025100
lea rax, [rsp + 0x58]
lea r8, [rsp + 0xf8]
lea rcx, [rsp + 0x70]
mov edx, 0x20019
mov qword [rsp + 0x108], rax
mov dword [rsp + 0xf8], 0x30
mov qword [rsp + 0x100], rbx
mov dword [rsp + 0x110], 0x240
mov qword [rsp + 0x118], rbx
mov qword [rsp + 0x120], rbx
mov qword [rsp + 0x70], rbx
call qword [sym.imp.ntoskrnl.exe_ZwOpenKey]
cmp eax, ebx
jl 0x12bf7
mov rcx, qword [rsp + 0x70]
lea rax, [rsp + 0x68]
xor r9d, r9d
mov qword [rsp + 0x28], rax
mov r8d, esi
mov rdx, r15
mov dword [rsp + 0x20], ebx
mov dword [rsp + 0x68], ebx
call qword [sym.imp.ntoskrnl.exe_ZwQueryValueKey]
cmp eax, ebx
jge 0x12b47
cmp eax, 0x80000005
je 0x12b47
cmp eax, 0xc0000023
jne 0x12be7
mov ecx, 0x6020000
call fcn.00024fc4
mov r11d, dword [rsp + 0x68]
mov rcx, r11
cmp r11, rbx
je 0x12b6d
call fcn.00012db4
mov r11d, dword [rsp + 0x68]
mov rdi, rax
jmp 0x12b70
mov rdi, rbx
cmp rdi, rbx
je 0x12be4
mov rcx, qword [rsp + 0x70]
lea rax, [rsp + 0xb0]
mov r9, rdi
mov qword [rsp + 0x28], rax
mov r8d, esi
mov rdx, r15
mov dword [rsp + 0x20], r11d
mov dword [rsp + 0xb0], ebx
call qword [sym.imp.ntoskrnl.exe_ZwQueryValueKey]
cmp eax, ebx
jl 0x12bd7
cmp dword [rdi + 4], r13d
jne 0x12bd7
cmp dword [rdi + 8], ebx
jbe 0x12bd7
mov eax, dword [rsp + 0x810]
cmp dword [rdi + 8], eax
ja 0x12bd7
mov r8d, dword [rdi + 8]
mov rcx, qword [rsp + 0xe8]
lea rdx, [rdi + 0xc]
call fcn.00024c10
mov byte [rsp + 0x30], r13b
mov edx, 0x52454749
mov rcx, rdi
call fcn.00012ebc
mov dil, r13b
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.ntoskrnl.exe_ZwClose]
mov qword [rsp + 0x70], rbx
mov edx, 0x504249
mov rcx, r12
call fcn.00012ebc
cmp dil, bl
jne 0x12c47
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0x58]
call qword [sym.imp.ntoskrnl.exe_RtlCopyUnicodeString]
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0x48]
call qword [sym.imp.ntoskrnl.exe_RtlCopyUnicodeString]
add r14d, r13d
cmp r14d, dword [rbp + 0x14]
jae 0x12c47
jmp 0x12867
mov edx, 0x504249
mov rcx, r12
call fcn.00012ebc
mov r12b, byte [rsp + 0x30]
mov edx, 0x504649
mov rcx, rbp
call fcn.00012ebc
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_ZwClose]
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x40], rbx
mov r11d, 0x4d746147
cmp rcx, rbx
je 0x12c86
mov edx, r11d
call fcn.00012ebc
mov qword [rsp + 0x60], rbx
mov rcx, qword [rsp + 0x50]
cmp rcx, rbx
je 0x12c98
mov edx, r11d
call fcn.00012ebc
mov al, r12b
jmp 0x12ce1
mov edx, 0x504649
mov rcx, rbp
call fcn.00012ebc
mov rcx, qword [rsp + 0x60]
mov r11d, 0x4d746147
mov edx, r11d
call fcn.00012ebc
mov rcx, qword [rsp + 0x50]
mov edx, r11d
mov qword [rsp + 0x60], rbx
call fcn.00012ebc
mov qword [rsp + 0x50], rbx
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ntoskrnl.exe_ZwClose]
xor al, al
mov rcx, qword [rsp + 0x7a0]
xor rcx, rsp
call fcn.00024bb0
mov rbx, qword [rsp + 0x7f0]
add rsp, 0x7b0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret