Function at 0x4c6444
Capabilities:
Query or enumerate registry value

Disassembly:
mov eax, 0x4f5b77
call fcn.004e1580
sub esp, 0x84c
and dword [ebp - 0x3c], 0
push ebx
push esi
push edi
push 1
mov dword [ebp - 0x4c], ecx
pop ebx
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x58], ebx
call sub.MFC42.DLL_CString::CString_3
lea ecx, [ebp - 0x18]
mov dword [ebp - 4], ebx
call sub.MFC42.DLL_CString::CString_3
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString_3
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 3
mov dword [ebp - 0x50], 0x104
call sub.MFC42.DLL_CString::CString_3
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 4
call sub.MFC42.DLL_CString::CString_3
push dword [ebp + 0xc]
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 5
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerFileExts_sOpenWithList
push eax
call sub.MFC42.DLL_CString::Format_1
mov esi, dword [ebp - 0x24]
add esp, 0xc
lea eax, [ebp - 0x50]
lea ecx, [ebp - 0x18]
push eax
push 0x105
call sub.MFC42.DLL_CString::GetBuffer
push eax
lea eax, [ebp - 0x58]
push eax
push str.MRUList
push esi
mov esi, reloc.BugReport.dll_Ordinal_1
push esi
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
push 0xffffffffffffffff
lea ecx, [ebp - 0x18]
mov edi, eax
call sub.MFC42.DLL_CString::ReleaseBuffer
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x28]
mov eax, dword [eax - 8]
mov dword [ebp - 0x48], eax
call sub.MFC42.DLL_CString::CString_3
test edi, edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov byte [ebp - 4], 6
jne 0x4c6687
and dword [ebp - 0x38], 0
cmp dword [ebp - 0x48], 0
jle 0x4c6687
push ebx
lea eax, [ebp - 0x54]
push dword [ebp - 0x38]
lea ecx, [ebp - 0x18]
push eax
call sub.MFC42.DLL_CString::Mid_1
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 7
call sub.MFC42.DLL_CString::operator_1
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 6
call sub.MFC42.DLL_CString::CString
lea eax, [ebp - 0x1c]
push eax
push 0x20019
push 0
push dword [ebp - 0x24]
push esi
call edi
test eax, eax
jne 0x4c65aa
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], 0x3ff
push eax
lea eax, [ebp - 0x858]
push eax
lea eax, [ebp - 0x20]
push eax
push 0
push dword [ebp - 0x28]
mov dword [ebp - 0x20], ebx
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4c65a3
lea eax, [ebp - 0x858]
push eax
lea eax, [ebp - 0x14]
push 0x52ca10
push eax
call sub.MFC42.DLL_CString::Format_1
add esp, 0xc
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x14]
cmp dword [eax - 8], 0
jle 0x4c6687
push eax
lea eax, [ebp - 0x2c]
push str.Applications_s_shellopencommand
push eax
call sub.MFC42.DLL_CString::Format_1
add esp, 0xc
lea eax, [ebp - 0x1c]
push eax
push 0x20019
push 0
push dword [ebp - 0x2c]
push Ordinal_1
call edi
test eax, eax
jne 0x4c6678
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x3ff
push eax
lea eax, [ebp - 0x458]
push eax
lea eax, [ebp - 0x44]
push eax
push 0
push 0
mov dword [ebp - 0x44], ebx
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4c6628
lea eax, [ebp - 0x458]
push eax
lea eax, [ebp - 0x10]
push 0x52ca10
push eax
call sub.MFC42.DLL_CString::Format_1
add esp, 0xc
push Ordinal_1
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x40]
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [ebp - 0x4c]
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x10]
push eax
mov byte [ebp - 4], 8
call fcn.004c6868
mov eax, dword [ebp - 0x10]
cmp dword [eax - 8], 4
jl 0x4c666c
push 0
push dword [ebp - 0x40]
call fcn.004d1e1a
pop ecx
test eax, eax
pop ecx
jne 0x4c6706
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 6
call sub.MFC42.DLL_CString::CString
inc dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x48]
jl 0x4c6522
lea eax, [ebp - 0x1c]
push eax
push 0x20019
push 0
push dword [ebp + 0xc]
push Ordinal_1
call edi
test eax, eax
jne 0x4c66e9
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], 0x3ff
push eax
lea eax, [ebp - 0x458]
push eax
lea eax, [ebp - 0x20]
push eax
push 0
push 0
mov dword [ebp - 0x20], ebx
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4c66e2
lea eax, [ebp - 0x458]
push eax
lea eax, [ebp - 0x14]
push 0x52ca10
push eax
call sub.MFC42.DLL_CString::Format_1
add esp, 0xc
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x14]
cmp dword [eax - 8], ebx
jge 0x4c6721
mov ecx, dword [ebp + 8]
push 0x52fdc0
call sub.MFC42.DLL_CString::CString_4
mov dword [ebp - 0x3c], ebx
jmp 0x4c680d
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x10]
push eax
call sub.MFC42.DLL_CString::CString_1
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x40]
jmp 0x4c6808
lea ecx, [ebp - 0x34]
call sub.MFC42.DLL_CString::CString_3
push dword [ebp - 0x14]
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 9
push str._s_shellopencommand
push eax
call sub.MFC42.DLL_CString::Format_1
add esp, 0xc
lea eax, [ebp - 0x1c]
push eax
push 0x20019
push 0
push dword [ebp - 0x34]
push Ordinal_1
call edi
test eax, eax
jne 0x4c67a3
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], 0x3ff
push eax
lea eax, [ebp - 0x458]
push eax
lea eax, [ebp - 0x20]
push eax
push 0
push 0
mov dword [ebp - 0x20], ebx
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4c679c
lea eax, [ebp - 0x458]
push eax
lea eax, [ebp - 0x10]
push 0x52ca10
push eax
call sub.MFC42.DLL_CString::Format_1
add esp, 0xc
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x30]
call sub.MFC42.DLL_CString::CString_3
mov ecx, dword [ebp - 0x4c]
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x10]
push eax
mov byte [ebp - 4], 0xa
call fcn.004c6868
mov eax, dword [ebp - 0x10]
cmp dword [eax - 8], ebx
jle 0x4c67e5
push 0
push dword [ebp - 0x30]
call fcn.004d1e1a
pop ecx
test eax, eax
pop ecx
je 0x4c67e5
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x10]
push eax
call sub.MFC42.DLL_CString::CString_1
jmp 0x4c67f2
mov ecx, dword [ebp + 8]
push 0x52fdc0
call sub.MFC42.DLL_CString::CString_4
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 4], 9
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x34]
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 5
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], bl
call sub.MFC42.DLL_CString::CString
and byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
call sub.MFC42.DLL_CString::CString
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 8