Function at 0x1005b92
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x868
mov eax, dword [0x101e4ac]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push 0xc
mov dword [ebp - 4], eax
pop ecx
xor eax, eax
lea edi, [ebp - 0x868]
rep stosd dword es:[edi], eax
push ebx
mov dword [ebp - 0x814], ebx
mov dword [ebp - 0x868], 0x30
call dword [sym.imp.USER32.dll_GetMenuItemCount]
xor edi, edi
mov dword [ebp - 0x834], eax
mov dword [ebp - 0x818], edi
mov dword [ebp - 0x810], edi
mov eax, dword [ebp - 0x810]
cmp eax, dword [ebp - 0x834]
jge 0x1005cb5
mov esi, dword [sym.imp.USER32.dll_GetMenuItemInfoW]
lea ecx, [ebp - 0x868]
push ecx
push 1
push eax
push ebx
mov dword [ebp - 0x864], 2
call esi
test eax, eax
je 0x1005ca3
cmp dword [ebp - 0x858], 0xfa0
jne 0x1005ca3
xor eax, eax
lea ecx, [ebp - 0x868]
push ecx
inc eax
push eax
push dword [ebp - 0x810]
mov dword [ebp - 0x818], eax
push ebx
mov dword [ebp - 0x864], 4
call esi
test eax, eax
je 0x1005ca3
cmp dword [ebp - 0x854], edi
je 0x1005c62
push dword [ebp - 0x854]
call dword [sym.imp.USER32.dll_DestroyMenu]
push 0xfa1
push dword [0x101f9f0]
call dword [sym.imp.USER32.dll_LoadMenuW]
cmp eax, edi
mov dword [ebp - 0x854], eax
je 0x1005ca3
lea eax, [ebp - 0x868]
push eax
push 1
push dword [ebp - 0x810]
push ebx
call dword [sym.imp.USER32.dll_SetMenuItemInfoW]
test eax, eax
jne 0x1005ca3
push dword [ebp - 0x854]
call dword [sym.imp.USER32.dll_DestroyMenu]
inc dword [ebp - 0x810]
cmp dword [ebp - 0x818], edi
je 0x1005be3
cmp dword [ebp - 0x818], edi
je 0x1006156
push edi
lea eax, [ebp - 0x830]
push eax
lea eax, [ebp - 0x82c]
push eax
mov dword [ebp - 0x82c], edi
mov dword [ebp - 0x830], edi
call fcn.0100414b
call fcn.010041e7
push 0x10017d0
push edi
call sub.SHELL32.dll_Ordinal_236
mov esi, eax
neg esi
sbb esi, esi
push 0x1000
neg esi
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push edi
mov dword [ebp - 0x828], eax
call dword [sym.imp.SHLWAPI.dll_Ordinal_413]
mov ebx, eax
lea eax, [ebp - 0x824]
push eax
dec ebx
push 1
dec ebx
push edi
neg ebx
push 0x1001af0
sbb ebx, ebx
push 0x80000002
inc ebx
mov dword [ebp - 0x838], edi
mov dword [ebp - 0x810], edi
mov dword [ebp - 0x834], edi
mov dword [ebp - 0x818], edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1005d9a
lea eax, [ebp - 0x81c]
push eax
lea eax, [ebp - 0x820]
push eax
push edi
push edi
push 0x1001ac0
push dword [ebp - 0x824]
mov dword [ebp - 0x81c], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1005d8e
cmp dword [ebp - 0x820], edi
setne al
mov dword [ebp - 0x818], eax
push dword [ebp - 0x824]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x824]
push eax
push 1
push edi
push 0x1001a48
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1005ed1
lea eax, [ebp - 0x81c]
push eax
lea eax, [ebp - 0x820]
push eax
push edi
push edi
push 0x1001ac0
push dword [ebp - 0x824]
mov dword [ebp - 0x81c], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1005e0b
cmp dword [ebp - 0x818], edi
jne 0x1005e01
cmp dword [ebp - 0x820], edi
mov dword [ebp - 0x818], edi
je 0x1005e0b
mov dword [ebp - 0x818], 1
lea eax, [ebp - 0x81c]
push eax
lea eax, [ebp - 0x820]
push eax
push edi
push edi
push 0x1001a30
push dword [ebp - 0x824]
mov dword [ebp - 0x81c], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1005e49
cmp dword [ebp - 0x820], edi
setne al
mov dword [ebp - 0x834], eax
lea eax, [ebp - 0x81c]
push eax
lea eax, [ebp - 0x820]
push eax
push edi
push edi
push 0x1001a20
push dword [ebp - 0x824]
mov dword [ebp - 0x81c], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1005e87
cmp dword [ebp - 0x820], edi
setne al
mov dword [ebp - 0x810], eax
lea eax, [ebp - 0x81c]
push eax
lea eax, [ebp - 0x820]
push eax
push edi
push edi
push 0x1001a04
push dword [ebp - 0x824]
mov dword [ebp - 0x81c], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1005ec5
cmp dword [ebp - 0x820], edi
setne al
mov dword [ebp - 0x838], eax
push dword [ebp - 0x824]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
je 0x1005eed
cmp dword [ebp - 0x830], edi
je 0x1005eed
cmp dword [ebp - 0x828], edi
jne 0x1005eed
cmp dword [ebp - 0x810], edi
je 0x1005f00
push 3
push 0xfa4
push dword [ebp - 0x814]
call dword [sym.imp.USER32.dll_EnableMenuItem]
cmp esi, edi
je 0x1005f1c
cmp dword [ebp - 0x82c], edi
je 0x1005f1c
cmp dword [ebp - 0x828], edi
jne 0x1005f1c
cmp dword [ebp - 0x810], edi
je 0x1005f2f
push 3
push 0xfa2
push dword [ebp - 0x814]
call dword [sym.imp.USER32.dll_EnableMenuItem]
cmp esi, edi
je 0x1005f3b
cmp dword [ebp - 0x810], edi
je 0x1005f4e
push 3
push 0xfa3
push dword [ebp - 0x814]
call dword [sym.imp.USER32.dll_EnableMenuItem]
cmp esi, edi
je 0x1005f5a
cmp dword [ebp - 0x810], edi
je 0x1005f6d
push 3
push 0xfa5
push dword [ebp - 0x814]
call dword [sym.imp.USER32.dll_EnableMenuItem]
lea eax, [ebp - 0x204]
mov dword [ebp - 0x844], eax
lea eax, [ebp - 0x868]
push eax
push edi
mov esi, 0xfa6
push esi
push dword [ebp - 0x814]
mov dword [ebp - 0x864], 0x10
mov dword [ebp - 0x840], 0x100
call dword [sym.imp.USER32.dll_GetMenuItemInfoW]
test eax, eax
je 0x100607a
lea eax, [ebp - 0x82c]
push eax
lea eax, [ebp - 0x408]
push eax
mov word [ebp - 0x408], di
mov dword [ebp - 0x82c], 0x101
call sub.SHELL32.dll_Ordinal_241
lea eax, [ebp - 0x408]
push eax
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x80c]
push 0x201
push eax
call fcn.01004bd8
add esp, 0x10
test eax, eax
jl 0x1006013
lea eax, [ebp - 0x80c]
push eax
push 0x100
lea eax, [ebp - 0x204]
push eax
call fcn.01004852
jmp 0x1006065
push 0x10019fc
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
cmp eax, edi
mov dword [ebp - 0x830], eax
je 0x1006065
mov word [eax], di
lea eax, [ebp - 0x204]
push eax
push 0x201
lea eax, [ebp - 0x80c]
push eax
call fcn.01004852
mov eax, dword [ebp - 0x830]
add eax, 6
push eax
push 0x201
lea eax, [ebp - 0x80c]
push eax
call fcn.01004c06
lea eax, [ebp - 0x868]
push eax
push edi
push esi
push dword [ebp - 0x814]
call dword [sym.imp.USER32.dll_SetMenuItemInfoW]
push 0x10000000
call dword [sym.imp.SHELL32.dll_SHRestricted]
cmp eax, 1
je 0x100609a
cmp dword [ebp - 0x810], edi
jne 0x100609a
cmp dword [ebp - 0x834], edi
je 0x10060a9
push 3
push esi
push dword [ebp - 0x814]
call dword [sym.imp.USER32.dll_EnableMenuItem]
cmp dword [ebp - 0x828], edi
mov esi, dword [sym.imp.USER32.dll_DeleteMenu]
jne 0x10060cb
push 0x1a
call dword [sym.imp.SHLWAPI.dll_IsOS]
test eax, eax
je 0x10060cb
cmp dword [ebp - 0x838], edi
je 0x10060f5
push edi
push 0xfa7
push dword [ebp - 0x814]
call esi
cmp dword [ebp - 0x828], edi
je 0x10060f5
push 0x1a
call dword [sym.imp.SHLWAPI.dll_IsOS]
test eax, eax
je 0x10060f5
cmp dword [ebp - 0x838], edi
je 0x1006103
push edi
push 0xfa8
push dword [ebp - 0x814]
call esi
cmp ebx, edi
je 0x100611e
push 0x10019d8
push edi
call sub.SHELL32.dll_Ordinal_236
test eax, eax
je 0x100611e
cmp dword [0x101fa60], edi
jne 0x100612c
push edi
push 0xfa9
push dword [ebp - 0x814]
call esi
cmp dword [ebp - 0x828], edi
jne 0x1006148
push 0x1a
call dword [sym.imp.SHLWAPI.dll_IsOS]
test eax, eax
jne 0x1006148
cmp dword [ebp - 0x818], edi
je 0x1006156
push edi
push 0xfaa
push dword [ebp - 0x814]
call esi
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.01013809
leave
ret 4