Function at 0x404a88
Capabilities:
Check if file exists
Get common file path
Get file attributes
Query or enumerate registry value
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4396bf
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x650
push edi
mov dword [ebp - 0x64c], ecx
lea ecx, [ebp - 0x124]
call sub.MFC42.DLL_CString::CString_2
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x14]
call sub.MFC42.DLL_CString::CString_2
mov byte [ebp - 4], 1
mov byte [ebp - 0x120], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x11f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x130]
push eax
push 0x20019
push 0
push 0x4471c0
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
jne 0x404b6a
mov dword [ebp - 0x338], 0x104
mov dword [ebp - 0x334], 1
lea ecx, [ebp - 0x338]
push ecx
lea edx, [ebp - 0x120]
push edx
lea eax, [ebp - 0x334]
push eax
push 0
push str.Path
mov ecx, dword [ebp - 0x130]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
jne 0x404b6a
mov edx, dword [ebp - 0x130]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x120]
push eax
lea ecx, [ebp - 0x18]
call sub.MFC42.DLL_CString::CString_1
mov byte [ebp - 4], 2
push 0x4471e8
lea ecx, [ebp - 0x18]
push ecx
lea edx, [ebp - 0x644]
push edx
call sub.MFC42.DLL_operator_1
mov dword [ebp - 0x650], eax
mov eax, dword [ebp - 0x650]
mov dword [ebp - 0x654], eax
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x654]
push ecx
lea ecx, [ebp - 0x124]
call sub.MFC42.DLL_CString::operator
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x644]
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x124]
call fcn.0040c8c0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xffffffff
je 0x404c08
lea ecx, [ebp - 0x124]
call fcn.0040c8c0
push eax
push 0
push 0x4471f8
push 0x447200
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x64c]
call fcn.00404e56
test eax, eax
je 0x404d37
mov byte [ebp - 0x63c], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x63b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [ebp - 0x538], 0
mov ecx, 0x7f
xor eax, eax
lea edi, [ebp - 0x537]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea edx, [ebp - 0x63c]
push edx
push 0
push 0
push 0x801c
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
test eax, eax
jl 0x404d37
lea eax, [ebp - 0x11e]
push eax
lea ecx, [ebp - 0x63c]
push ecx
push str._s_virtualstore_s
lea edx, [ebp - 0x538]
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
lea eax, [ebp - 0x538]
push eax
lea ecx, [ebp - 0x640]
call sub.MFC42.DLL_CString::CString_1
mov byte [ebp - 4], 4
push str.LangRsc.ini
lea ecx, [ebp - 0x640]
push ecx
lea edx, [ebp - 0x648]
push edx
call sub.MFC42.DLL_operator_1
mov dword [ebp - 0x658], eax
mov eax, dword [ebp - 0x658]
mov dword [ebp - 0x65c], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x65c]
push ecx
lea ecx, [ebp - 0x14]
call sub.MFC42.DLL_CString::operator
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x648]
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x14]
call fcn.0040c8c0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xffffffff
je 0x404d28
lea ecx, [ebp - 0x14]
call fcn.0040c8c0
push eax
push 0
push str.Date
push str.General
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x640]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 0x330], 0
mov ecx, 0x7f
xor eax, eax
lea edi, [ebp - 0x32f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edx, dword [ebp - 0x12c]
cmp edx, dword [ebp - 0x10]
jbe 0x404db4
lea ecx, [ebp - 0x124]
call fcn.0040c8c0
push eax
push 0x200
lea eax, [ebp - 0x330]
push eax
push 0x44723c
push 0x447274
push 0x447278
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0x124]
call fcn.0040c8c0
push eax
push 0
push 0x44728c
push 0x447294
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x64c]
mov dword [ecx + 0x1cc], eax
jmp 0x404e05
lea ecx, [ebp - 0x14]
call fcn.0040c8c0
push eax
push 0x200
lea edx, [ebp - 0x330]
push edx
push str.http:__211.154.165.132_GLSetupStatistics_Default.aspx
push 0x4472e0
push 0x4472e4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0x14]
call fcn.0040c8c0
push eax
push 0
push str.NotSend
push str.GLSetup_Statistics
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x64c]
mov dword [ecx + 0x1cc], eax
lea edx, [ebp - 0x330]
push edx
mov ecx, dword [ebp - 0x64c]
add ecx, 0x1c8
call fcn.00430af8
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x18]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x124]
call sub.MFC42.DLL_CString::CString
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
mov esp, ebp
pop ebp
ret