Function at 0x405110
Capabilities:
Query or enumerate registry value

Disassembly:
push 0xffffffffffffffff
push 0x40adf4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20
push ebx
push ebp
push esi
mov ebp, ecx
push edi
lea ecx, [esp + 0x18]
mov dword [esp + 0x24], ebp
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_1]
push str.RecentApplication
push str.SOFTWARESony_CorporationVAIO_Control_Center
lea eax, [esp + 0x20]
push str._s_s
xor edi, edi
push eax
mov dword [esp + 0x48], edi
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0x10
nop
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_1]
push 8
mov byte [esp + 0x3c], 1
call sub.MFC71U.DLL_CWordArray::CWordArray
mov esi, eax
add esp, 4
test esi, esi
je 0x405189
mov ecx, esi
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_1]
jmp 0x40518b
xor esi, esi
push edi
lea ecx, [esp + 0x18]
push str.Name_d
push ecx
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0xc
push esi
push ecx
lea edx, [esp + 0x1c]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT]
push ecx
lea eax, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
mov byte [esp + 0x48], 2
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT]
mov ecx, ebp
mov byte [esp + 0x44], 1
call fcn.004048f0
test eax, eax
jne 0x4052d2
push edi
lea ecx, [esp + 0x18]
push str.Time_d
push ecx
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0xc
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x3c], 3
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT]
mov eax, 4
lea ecx, [esp + 0x28]
push ecx
lea edx, [esi + 4]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], eax
push edx
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x44], 1
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
lea ecx, [esp + 0x2c]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
push 0x80000001
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
lea ecx, [esp + 0x1c]
mov ebx, eax
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
test ebx, ebx
jne 0x4052d2
mov ebx, dword [ebp + 0xc]
add ebp, 4
test ebx, ebx
jl 0x4052f8
push 0xffffffffffffffff
lea ecx, [ebx + 1]
push ecx
mov ecx, ebp
call fcn.00404a40
mov edx, dword [ebp + 4]
lea ecx, [esp + 0x14]
mov dword [edx + ebx*4], esi
mov byte [esp + 0x38], 0
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov ebp, dword [esp + 0x24]
inc edi
cmp edi, 5
jl 0x405160
mov ecx, ebp
call fcn.00404bb0
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov ecx, dword [esp + 0x30]
pop edi
pop esi
pop ebp
mov eax, 1
mov dword fs:[0], ecx
pop ebx
add esp, 0x2c
ret
test esi, esi
je 0x4052e7
mov ecx, esi
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
push esi
call sub.MFC71U.DLL_CNoTrackObject::operator_new
add esp, 4
lea ecx, [esp + 0x14]
mov byte [esp + 0x38], 0
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
jmp 0x4052a9
jmp sub.MFC71U.DLL_AfxThrowInternetException