Function at 0x13ccc
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
mov rax, rsp
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0xc0
xor esi, esi
mov rdi, rcx
lea rcx, [rax - 0x68]
lea r8d, [rsi + 0x28]
xor edx, edx
mov dword [rax + 0x10], 1
mov qword [rsp + 0x40], rsi
mov dword [rax + 0x20], esi
mov dword [rax + 8], esi
mov dword [rax + 0x18], esi
call fcn.00016bc0
lea rax, [0x00017a30]
mov qword [rsp + 0x70], rax
lea r11d, [rsi + 0xa]
lea eax, [rsi + 8]
mov word [rsp + 0x58], ax
lea ecx, [rsi + 0xc]
lea rax, [0x00017a40]
mov qword [rsp + 0x60], rax
lea rax, [0x00017a50]
mov word [rsp + 0x6a], cx
mov qword [rsp + 0x50], rax
lea eax, [rsi + 0x12]
mov word [rsp + 0x4a], cx
mov word [rsp + 0x78], ax
lea eax, [rsi + 0x14]
lea r8, [rsp + 0x88]
mov word [rsp + 0x7a], ax
lea rax, [0x00017a60]
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x80], rax
lea rax, [rsp + 0x118]
xor r9d, r9d
mov qword [rsp + 0x30], rax
mov edx, 0xf003f
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rsi
mov word [rsp + 0x68], r11w
mov word [rsp + 0x5a], r11w
mov word [rsp + 0x48], r11w
mov dword [rsp + 0x88], 0x30
mov qword [rsp + 0x90], rsi
mov dword [rsp + 0xa0], 0x240
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0xa8], rsi
mov qword [rsp + 0xb0], rsi
call qword [sym.imp.ntoskrnl.exe_ZwCreateKey]
cmp eax, esi
jl 0x14131
mov ebp, 0x400
xor ecx, ecx
mov rdx, rbp
call qword [sym.imp.ntoskrnl.exe_ExAllocatePool]
mov rbx, rax
cmp rax, rsi
je 0x1411f
mov r8, rbp
xor edx, edx
mov rcx, rax
mov dword [rsp + 0x100], esi
call fcn.00016bc0
mov rcx, qword [rsp + 0x40]
lea rdx, [rsp + 0x100]
lea r12d, [rsi + 2]
mov r9, rbx
mov qword [rsp + 0x28], rdx
lea rdx, [rsp + 0x48]
mov r8d, r12d
mov dword [rsp + 0x20], ebp
call qword [sym.imp.ntoskrnl.exe_ZwQueryValueKey]
or r15, 0xffffffffffffffff
cmp eax, esi
lea r13, [0x00017a10]
jge 0x13e89
xor eax, eax
mov rcx, r15
mov rdi, r13
repne scasw ax, word [rdi]
lea r9d, [rsi + 1]
lea rdx, [rsp + 0x48]
not rcx
xor r8d, r8d
lea eax, [rcx + rcx]
mov rcx, qword [rsp + 0x40]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r13
call qword [sym.imp.ntoskrnl.exe_ZwSetValueKey]
cmp eax, esi
jl 0x14114
cmp dword [rbx + 4], 1
jne 0x13ea4
mov r8d, dword [rbx + 8]
lea rcx, [rbx + 0xc]
mov rdx, r13
call qword [sym.imp.ntoskrnl.exe__wcsnicmp]
cmp eax, esi
je 0x13edf
xor eax, eax
mov rcx, r15
mov rdi, r13
repne scasw ax, word [rdi]
lea rdx, [rsp + 0x48]
mov r9d, 1
not rcx
xor r8d, r8d
lea eax, [rcx + rcx]
mov rcx, qword [rsp + 0x40]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r13
call qword [sym.imp.ntoskrnl.exe_ZwSetValueKey]
cmp eax, esi
jl 0x14114
mov r8, rbp
xor edx, edx
mov rcx, rbx
mov dword [rsp + 0x100], esi
call fcn.00016bc0
mov rcx, qword [rsp + 0x40]
lea rdx, [rsp + 0x100]
mov r9, rbx
mov r8d, r12d
mov qword [rsp + 0x28], rdx
lea rdx, [rsp + 0x58]
mov dword [rsp + 0x20], ebp
call qword [sym.imp.ntoskrnl.exe_ZwQueryValueKey]
mov edi, 4
cmp eax, esi
jge 0x13f52
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x108]
lea rdx, [rsp + 0x58]
mov r9d, edi
xor r8d, r8d
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ntoskrnl.exe_ZwSetValueKey]
cmp eax, esi
jl 0x14114
cmp dword [rbx + 4], edi
jne 0x13f63
mov eax, dword [rsp + 0x108]
cmp dword [rbx + 0xc], eax
je 0x13f92
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x108]
lea rdx, [rsp + 0x58]
mov r9d, edi
xor r8d, r8d
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ntoskrnl.exe_ZwSetValueKey]
cmp eax, esi
jl 0x14114
mov r8, rbp
xor edx, edx
mov rcx, rbx
mov dword [rsp + 0x100], esi
call fcn.00016bc0
mov rcx, qword [rsp + 0x40]
lea rdx, [rsp + 0x100]
mov r9, rbx
mov r8d, r12d
mov qword [rsp + 0x28], rdx
lea rdx, [rsp + 0x68]
mov dword [rsp + 0x20], ebp
call qword [sym.imp.ntoskrnl.exe_ZwQueryValueKey]
cmp eax, esi
jge 0x14000
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x108]
lea rdx, [rsp + 0x68]
mov r9d, edi
xor r8d, r8d
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ntoskrnl.exe_ZwSetValueKey]
cmp eax, esi
jl 0x14114
cmp dword [rbx + 4], edi
jne 0x14011
mov eax, dword [rbx + 0xc]
cmp dword [rsp + 0x110], eax
je 0x14040
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x110]
lea rdx, [rsp + 0x68]
mov r9d, edi
xor r8d, r8d
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ntoskrnl.exe_ZwSetValueKey]
cmp eax, esi
jl 0x14114
mov r8, rbp
xor edx, edx
mov rcx, rbx
mov dword [rsp + 0x100], esi
call fcn.00016bc0
mov rcx, qword [rsp + 0x40]
lea rdx, [rsp + 0x100]
mov r9, rbx
mov r8d, r12d
mov qword [rsp + 0x28], rdx
lea rdx, [rsp + 0x78]
mov dword [rsp + 0x20], ebp
call qword [sym.imp.ntoskrnl.exe_ZwQueryValueKey]
cmp eax, esi
jge 0x140ba
mov rdx, qword [0x001b5d90]
xor eax, eax
mov rcx, r15
mov rdi, rdx
mov r9d, r12d
xor r8d, r8d
repne scasw ax, word [rdi]
not rcx
lea eax, [rcx + rcx]
mov rcx, qword [rsp + 0x40]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdx
lea rdx, [rsp + 0x78]
call qword [sym.imp.ntoskrnl.exe_ZwSetValueKey]
cmp eax, esi
jl 0x14114
cmp dword [rbx + 4], r12d
jne 0x140dd
movzx r8d, word [0x001b5d88]
mov rdx, qword [0x001b5d90]
lea rcx, [rbx + 0xc]
call qword [sym.imp.ntoskrnl.exe__wcsnicmp]
cmp eax, esi
je 0x14114
mov rdx, qword [0x001b5d90]
xor eax, eax
mov rcx, r15
mov rdi, rdx
mov r9d, r12d
xor r8d, r8d
repne scasw ax, word [rdi]
not rcx
lea eax, [rcx + rcx]
mov rcx, qword [rsp + 0x40]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdx
lea rdx, [rsp + 0x78]
call qword [sym.imp.ntoskrnl.exe_ZwSetValueKey]
xor edx, edx
mov rcx, rbx
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov rcx, qword [rsp + 0x40]
cmp rcx, rsi
je 0x1412f
call qword [sym.imp.ntoskrnl.exe_ZwClose]
xor eax, eax
add rsp, 0xc0
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret