Function at 0x76aa2d66
Capabilities:
Query or enumerate registry key

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xf8
mov eax, dword [0x76aae004]
push esi
push edi
mov dword [ebp - 4], eax
push str.RegistryMachineSystemCurrentControlSetControlSecurePipeServerswinreg
lea eax, [ebp - 0xe0]
xor esi, esi
push eax
mov dword [ebp - 0xcc], esi
call dword [sym.imp.ntdll.dll_RtlInitUnicodeStringEx]
lea eax, [ebp - 0xe0]
mov dword [ebp - 0xf0], eax
lea eax, [ebp - 0xcc]
push eax
push 1
push 0x2000000
push 0xfffffffffffffffe
mov dword [ebp - 0xf8], 0x18
mov dword [ebp - 0xf4], esi
mov dword [ebp - 0xec], 0x40
mov dword [ebp - 0xe8], esi
mov dword [ebp - 0xe4], esi
call dword [sym.imp.ntdll.dll_NtOpenThreadToken]
cmp eax, 0xc000005c
mov edi, dword [sym.imp.ntdll.dll_NtSetInformationThread]
je 0x76aa2e10
cmp eax, 0xc000007c
je 0x76aa2e10
cmp eax, esi
jne 0x76aa2fe1
push 4
lea eax, [ebp - 0xd4]
push eax
push 5
push 0xfffffffffffffffe
mov dword [ebp - 0xd4], esi
call edi
jmp 0x76aa2e16
mov dword [ebp - 0xcc], esi
push ebx
lea eax, [ebp - 0xf8]
push eax
push 0x20019
lea eax, [ebp - 0xd0]
push eax
call dword [sym.imp.ntdll.dll_NtOpenKey]
cmp dword [ebp - 0xcc], esi
mov ebx, dword [sym.imp.ntdll.dll_NtClose]
mov dword [ebp - 0xc8], eax
je 0x76aa2e67
push 4
lea eax, [ebp - 0xcc]
push eax
push 5
push 0xfffffffffffffffe
call edi
push dword [ebp - 0xcc]
mov edi, eax
call ebx
cmp edi, esi
jge 0x76aa2e67
mov dword [ebp - 0xc8], edi
cmp dword [ebp - 0xc8], esi
jge 0x76aa2ef4
cmp dword [ebp - 0xc8], 0xc000003a
je 0x76aa2e8f
cmp dword [ebp - 0xc8], 0xc0000034
jne 0x76aa2fda
mov eax, dword [0x76aae0d0]
or eax, dword [0x76aae0d4]
je 0x76aa2ee9
push 1
mov edi, 0x76aae080
push edi
call dword [sym.imp.ntdll.dll_RtlAcquireResourceExclusive]
mov eax, dword [0x76aae0d0]
or eax, dword [0x76aae0d4]
je 0x76aa2ee2
mov eax, dword fs:[0x18]
push dword [0x76aae580]
mov eax, dword [eax + 0x30]
push esi
push dword [eax + 0x18]
call dword [sym.imp.ntdll.dll_RtlFreeHeap]
mov dword [0x76aae580], esi
mov dword [0x76aae0d0], esi
mov dword [0x76aae0d4], esi
push edi
call dword [sym.imp.ntdll.dll_RtlReleaseResource]
mov dword [ebp - 0xc8], esi
jmp 0x76aa2fda
lea eax, [ebp - 0xd8]
push eax
push 0xc0
lea eax, [ebp - 0xc4]
push eax
push esi
push dword [ebp - 0xd0]
call dword [sym.imp.ntdll.dll_NtQueryKey]
cmp eax, esi
mov dword [ebp - 0xc8], eax
jl 0x76aa2fd2
mov eax, dword [ebp - 0xc0]
cmp eax, dword [0x76aae0d4]
jl 0x76aa2fd2
jg 0x76aa2f48
mov eax, dword [ebp - 0xc4]
cmp eax, dword [0x76aae0d0]
jbe 0x76aa2fd2
push 1
mov edi, 0x76aae080
push edi
call dword [sym.imp.ntdll.dll_RtlAcquireResourceExclusive]
mov eax, dword [ebp - 0xc0]
cmp eax, dword [0x76aae0d4]
jl 0x76aa2fcb
jg 0x76aa2f74
mov eax, dword [ebp - 0xc4]
cmp eax, dword [0x76aae0d0]
jbe 0x76aa2fcb
cmp dword [0x76aae580], esi
je 0x76aa2f9b
mov eax, dword fs:[0x18]
push dword [0x76aae580]
mov eax, dword [eax + 0x30]
push esi
push dword [eax + 0x18]
call dword [sym.imp.ntdll.dll_RtlFreeHeap]
mov dword [0x76aae580], esi
push 0x76aae580
push dword [ebp - 0xd0]
call fcn.76aa2a06
cmp eax, esi
mov dword [ebp - 0xc8], eax
jl 0x76aa2fcb
mov eax, dword [ebp - 0xc4]
mov dword [0x76aae0d0], eax
mov eax, dword [ebp - 0xc0]
mov dword [0x76aae0d4], eax
push edi
call dword [sym.imp.ntdll.dll_RtlReleaseResource]
push dword [ebp - 0xd0]
call ebx
mov eax, dword [ebp - 0xc8]
pop ebx
mov ecx, dword [ebp - 4]
pop edi
pop esi
call fcn.76aac8aa
leave
ret