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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x114c
call fcn.00480b30
mov eax, dword [0x58005c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
test esi, esi
je 0x46fd1d
test ebx, ebx
je 0x46fd1d
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46fab4
sub ecx, edx
sar ecx, 1
je 0x46fd1d
mov ecx, ebx
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46fad0
sub ecx, edx
sar ecx, 1
je 0x46fd1d
push 0x190
lea eax, [ebp - 0x194]
mov dword [ebp - 0x1138], 0
push 0
push eax
call fcn.004821f0
add esp, 0xc
lea eax, [ebp - 0x1138]
push eax
push 0x20019
push 0
push esi
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x46fcf5
mov eax, dword [ebp - 0x1138]
test eax, eax
je 0x46fd06
push edi
xor edi, edi
mov dword [ebp - 0x1140], 0xc7
push edi
push edi
push edi
push edi
lea ecx, [ebp - 0x1140]
push ecx
lea ecx, [ebp - 0x194]
push ecx
push edi
push eax
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x46fcf4
lea ecx, [ebp - 0x194]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46fb70
sub ecx, edx
sar ecx, 1
je 0x46fcf4
cmp dword [ebp - 0x1138], 0
je 0x46fca8
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x46fb97
sub eax, edx
sar eax, 1
je 0x46fca8
lea eax, [ebp - 0x113c]
mov dword [ebp - 0x113c], 0
push eax
push 0x20019
push 0
lea eax, [ebp - 0x194]
push eax
push dword [ebp - 0x1138]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x46fca8
mov esi, dword [ebp - 0x113c]
test esi, esi
je 0x46fca8
push 0xfa0
push eax
lea eax, [ebp - 0x1134]
mov dword [ebp - 0x1148], 1
push eax
call fcn.004821f0
add esp, 0xc
mov dword [ebp - 0x1144], 0xf9e
lea eax, [ebp - 0x1144]
push eax
lea eax, [ebp - 0x1134]
push eax
lea eax, [ebp - 0x1148]
push eax
push 0xffff
push ebx
push 0
push esi
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
push dword [ebp - 0x113c]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
jne 0x46fca8
cmp dword [ebp - 0x1148], 1
jne 0x46fca8
lea ecx, [ebp - 0x1134]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46fc60
sub ecx, edx
sar ecx, 1
je 0x46fca8
mov eax, 0x25
cmp ax, word [ebp - 0x1134]
je 0x46fca8
lea eax, [ebp - 0x1134]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
lea eax, [ebp - 0x1134]
je 0x46fc9d
push 0x800
jmp 0x46fc9f
push 0
push 0
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
push 0x190
lea eax, [ebp - 0x194]
mov dword [ebp - 0x1140], 0xc7
push 0
push eax
inc edi
call fcn.004821f0
add esp, 0xc
lea eax, [ebp - 0x1140]
push 0
push 0
push 0
push 0
push eax
lea eax, [ebp - 0x194]
push eax
push edi
push dword [ebp - 0x1138]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
je 0x46fb64
pop edi
mov eax, dword [ebp - 0x1138]
test eax, eax
je 0x46fd06
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047f860
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 4]
xor eax, eax
pop esi
xor ecx, ebp
pop ebx
call fcn.0047f860
mov esp, ebp
pop ebp
ret 8