Function at 0x4057f0
Capabilities:
Set registry value

Disassembly:
push 0xffffffffffffffff
push 0x408e88
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, dword [esp + 0x1c]
push esi
mov esi, ecx
push eax
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CString::CString_2
push 1
lea ecx, [esp + 0x24]
mov dword [esp + 0x14], 0
call sub.MFC42.DLL_CString::GetBuffer
mov cl, byte [esp + 0x1c]
lea edx, [esp + 4]
push edx
push str.SOFTWAREMicrosoftWindowsCurrentVersionExplorerUser_Shell_Folders
mov byte [eax], cl
push 0x80000001
mov dword [esp + 0x10], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
mov eax, dword [esp + 0x18]
cmp eax, 5
ja case.default.0x40585a
jmp dword [eax*4 + 0x405a48]
push 0x40db38
push 0x3f5
mov ecx, esi
call sub.MFC42.DLL_CWnd::SetDlgItemTextA
push 0x40db38
lea ecx, [esi + 0x94]
call sub.MFC42.DLL_CString::operator_1
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x20]
mov eax, dword [eax - 8]
inc eax
push eax
push 1
call sub.MFC42.DLL_CString::GetBuffer
mov ecx, dword [esp + 8]
push eax
push 2
push 0
push str.Personal
push ecx
jmp 0x405a0a
push 0x40db28
push 0x3f5
mov ecx, esi
call sub.MFC42.DLL_CWnd::SetDlgItemTextA
push 0x40db28
lea ecx, [esi + 0x94]
call sub.MFC42.DLL_CString::operator_1
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x20]
mov eax, dword [edx - 8]
inc eax
push eax
push 1
call sub.MFC42.DLL_CString::GetBuffer
push eax
mov eax, dword [esp + 0xc]
push 2
push 0
push str.Desktop
push eax
jmp 0x405a0a
push 0x40db0c
push 0x3f5
mov ecx, esi
call sub.MFC42.DLL_CWnd::SetDlgItemTextA
push 0x40db0c
lea ecx, [esi + 0x94]
call sub.MFC42.DLL_CString::operator_1
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x20]
inc eax
push eax
push 1
call sub.MFC42.DLL_CString::GetBuffer
push eax
push 2
push 0
push str.Cache
jmp 0x405a05
push 0x40daf8
push 0x3f5
mov ecx, esi
call sub.MFC42.DLL_CWnd::SetDlgItemTextA
push 0x40daf8
lea ecx, [esi + 0x94]
call sub.MFC42.DLL_CString::operator_1
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x20]
mov eax, dword [eax - 8]
inc eax
push eax
push 1
call sub.MFC42.DLL_CString::GetBuffer
mov ecx, dword [esp + 8]
push eax
push 2
push 0
push str.History
push ecx
jmp 0x405a0a
push 0x40dae4
push 0x3f5
mov ecx, esi
call sub.MFC42.DLL_CWnd::SetDlgItemTextA
push 0x40dae4
lea ecx, [esi + 0x94]
call sub.MFC42.DLL_CString::operator_1
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x20]
mov eax, dword [edx - 8]
inc eax
push eax
push 1
call sub.MFC42.DLL_CString::GetBuffer
push eax
mov eax, dword [esp + 0xc]
push 2
push 0
push str.Favorites
push eax
jmp 0x405a0a
push str.Moving_Recent
push 0x3f5
mov ecx, esi
call sub.MFC42.DLL_CWnd::SetDlgItemTextA
push str.Moving_Recent
lea ecx, [esi + 0x94]
call sub.MFC42.DLL_CString::operator_1
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x20]
inc eax
push eax
push 1
call sub.MFC42.DLL_CString::GetBuffer
push eax
push 2
push 0
push str.Recent
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [esi + 0x94]
mov ecx, esi
push eax
push 0x3f5
call sub.MFC42.DLL_CWnd::SetDlgItemTextA
lea ecx, [esp + 0x20]
mov dword [esp + 0x10], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 8]
pop esi
mov dword fs:[0], ecx
add esp, 0x10
ret 0xc