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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x80c
mov eax, dword [0x4e6418]
xor eax, ebp
mov dword [ebp - 0x10], eax
xor ebx, ebx
cmp dword [ebp + 8], 0
je 0x4aaaed
cmp dword [ebp + 0xc], 0
je 0x4aaaed
lea eax, [ebp - 0x800]
mov dword [eax], 0xffffffff
xor ebx, ebx
mov dword [ebp - 0x320], ebx
xorps xmm0, xmm0
movups xmmword [ebp - 0x330], xmm0
movups xmmword [ebp - 0x340], xmm0
movups xmmword [ebp - 0x350], xmm0
movups xmmword [ebp - 0x360], xmm0
movups xmmword [ebp - 0x370], xmm0
movups xmmword [ebp - 0x380], xmm0
push eax
push 8
push ebx
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionNetworkCards
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x4aab0e
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0045901d
mov eax, ebx
add esp, 0x80c
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 8]
mov byte [eax], 0
xor ebx, ebx
jmp 0x4aaaed
lea edi, [ebp - 0x588]
push 0x208
push 0xff
push edi
call fcn.00460af0
add esp, 0xc
xor ebx, ebx
jmp 0x4aaba2
push dword [ebp - 0x800]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp byte [ebp - 0x380], 0
je 0x4aab0a
mov esi, dword [ebp + 0xc]
test esi, esi
jle 0x4aab04
lea ecx, [esi - 1]
mov eax, 0x7ffffffd
cmp ecx, 0x7ffffffd
cmovb eax, ecx
inc eax
xor ecx, ecx
mov edi, dword [ebp + 8]
mov dl, byte [ebp + ecx - 0x380]
test dl, dl
je 0x4aab72
mov byte [edi + ecx], dl
dec esi
inc ecx
cmp eax, ecx
jne 0x4aab5e
add edi, ecx
xor eax, eax
test esi, esi
setne bl
sete al
sub edi, eax
mov byte [edi], 0
jmp 0x4aaaed
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x808]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea edi, [ebp - 0x588]
inc ebx
mov dword [ebp - 0x804], 0x104
mov eax, dword [ebp - 0x800]
sub esp, 0x20
xorps xmm0, xmm0
movups xmmword [esp + 0x10], xmm0
lea ecx, [ebp - 0x804]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x4aab2b
mov dword [ebp - 0x808], 0xffffffff
lea eax, [ebp - 0x808]
push eax
push 1
push 0
push edi
push dword [ebp - 0x800]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4aaba1
mov edi, 0x208
push edi
push 0xff
lea esi, [ebp - 0x790]
push esi
call fcn.00460af0
add esp, 0xc
mov dword [ebp - 0x80c], 1
mov dword [ebp - 0x810], edi
lea eax, [ebp - 0x810]
push eax
push esi
lea eax, [ebp - 0x80c]
push eax
push 0
push str.ServiceName
push dword [ebp - 0x808]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4aab8f
xor eax, eax
mov dword [ebp - 0x794], eax
xorps xmm0, xmm0
movups xmmword [ebp - 0x7a4], xmm0
movups xmmword [ebp - 0x7b4], xmm0
movups xmmword [ebp - 0x7c4], xmm0
movups xmmword [ebp - 0x7d4], xmm0
movups xmmword [ebp - 0x7e4], xmm0
movups xmmword [ebp - 0x7f4], xmm0
push edi
push 0xff
lea esi, [ebp - 0x218]
push esi
call fcn.00460af0
add esp, 0xc
lea eax, [ebp - 0x790]
push eax
push str.._s
push edi
push esi
call fcn.004aa1f0
sub esp, 0xc
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
movaps xmm0, xmmword [0x4d75c0]
movups xmmword [esp + 4], xmm0
mov dword [esp], esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x4aab8f
mov dword [ebp - 0x7f8], 0x1010101
mov esi, eax
mov eax, 0x104
push eax
push 0xff
lea edi, [ebp - 0x31c]
push edi
call fcn.00460af0
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x7fc], eax
push eax
lea eax, [ebp - 0x7fc]
push eax
mov eax, 0x104
push eax
push edi
push 4
lea eax, [ebp - 0x7f8]
push eax
push 0x170002
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x4aab88
cmp dword [ebp - 0x7fc], 0
je 0x4aab88
movzx eax, byte [ebp - 0x317]
mov dword [ebp - 0x814], eax
movzx ecx, byte [ebp - 0x318]
movzx edx, byte [ebp - 0x319]
movzx edi, byte [ebp - 0x31a]
movzx eax, byte [ebp - 0x31b]
mov dword [ebp - 0x818], eax
movzx eax, byte [ebp - 0x31c]
push dword [ebp - 0x814]
push ecx
push edx
push edi
push dword [ebp - 0x818]
push eax
push str._02X_02X_02X_02X_02X_02X
push 0x64
lea eax, [ebp - 0x7f4]
push eax
call fcn.0042d690
add esp, 0x24
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [ebp - 0x380], 0
je 0x4aadd1
lea eax, [ebp - 0x380]
push eax
lea eax, [ebp - 0x7f4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jns 0x4aab8f
mov eax, 0x64
xor ecx, ecx
mov dl, byte [ebp + ecx - 0x7f4]
test dl, dl
je 0x4aadf8
mov byte [ebp + ecx - 0x380], dl
inc ecx
dec eax
cmp ecx, 0x64
jne 0x4aadd8
mov ecx, 0x64
xor eax, eax
add ecx, ebp
add ecx, 0xfffffc80
cmp eax, 1
sbb ecx, 0
mov byte [ecx], 0
jmp 0x4aab8f