Function at 0x403240
Capabilities:
Get geographical location
Get hostname
Get memory capacity

Disassembly:
sub esp, 0x2e0
push ebx
push ebp
push esi
mov esi, dword [esp + 0x2f0]
push edi
push 0x40
push esi
push 2
push 0x800
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
lea eax, [esp + 0x24]
lea ecx, [esi + 0x40]
push eax
push ecx
mov dword [esp + 0x2c], 0x40
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [esp + 0x1ec]
push str.SOFTWAREMicrosoftWindows_NTCurrentVersion
push edx
call ebp
lea eax, [esp + 0x18]
xor ebx, ebx
push eax
push 0xf003f
lea ecx, [esp + 0x1f4]
push ebx
push ecx
push 0x80000002
call dword [0x409c98]
test eax, eax
jne 0x4032e4
lea edx, [esp + 0x10]
lea eax, [esp + 0x68]
push edx
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x18]
push eax
push ecx
push ebx
push str.ProductName
push edx
mov dword [esp + 0x28], 0xc8
call dword [0x409c94]
mov eax, dword [esp + 0x18]
push eax
call dword [0x409c90]
mov edi, dword [sym.imp.SHLWAPI.dll_StrStrA]
lea ecx, [esp + 0x68]
push str.2000
push ecx
call edi
test eax, eax
je 0x403315
lea edx, [esi + 0xc0]
push str.Windows_2000
mov dword [0x409404], 1
push edx
jmp 0x4033d2
lea eax, [esp + 0x68]
push 0x4094c8
push eax
call edi
test eax, eax
je 0x403335
mov dword [0x409404], ebx
push str.Windows_XP
jmp 0x4033cb
lea edx, [esp + 0x68]
push str.2003
push edx
call edi
test eax, eax
je 0x40335d
lea eax, [esi + 0xc0]
push str.Windows_2003
mov dword [0x409404], 1
push eax
jmp 0x4033d2
lea ecx, [esp + 0x68]
push str.Vista
push ecx
call edi
test eax, eax
je 0x403381
lea edx, [esi + 0xc0]
push str.Windows_Vista
mov dword [0x409404], ebx
push edx
jmp 0x4033d2
lea eax, [esp + 0x68]
push str.2008
push eax
call edi
test eax, eax
je 0x4033a2
mov dword [0x409404], 1
push str.Windows_2008
jmp 0x4033cb
lea edx, [esp + 0x68]
push 0x409470
push edx
call edi
test eax, eax
mov dword [0x409404], ebx
je 0x4033c6
lea eax, [esi + 0xc0]
push str.Windows_7
push eax
jmp 0x4033d2
push str.Windows_NT
lea ecx, [esi + 0xc0]
push ecx
call ebp
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0xe9]
mov byte [esp + 0xe8], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea edx, [esp + 0xe8]
push str.HARDWAREDESCRIPTIONSystemCentralProcessor0
push edx
stosb byte es:[edi], al
call ebp
lea eax, [esp + 0x1c]
lea ecx, [esp + 0xe8]
push eax
push 0xf003f
push ebx
push ecx
push 0x80000002
call dword [0x409c98]
test eax, eax
jne 0x40345a
lea edx, [esp + 0x10]
lea eax, [esp + 0x20]
push edx
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x18]
push eax
push ecx
push ebx
push str.MHz
push edx
mov dword [esp + 0x2c], 4
mov dword [esp + 0x28], 0xc8
call dword [0x409c94]
mov eax, dword [esp + 0x1c]
push eax
call dword [0x409c90]
mov ecx, dword [esp + 0x20]
mov edi, dword [0x409ccc]
push ecx
lea edx, [esi + 0x120]
push str._u_MHz
push edx
call edi
add esp, 0xc
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 0x40
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov ecx, 0x14
call fcn.004060d0
add eax, 1
lea ecx, [esi + 0x100]
adc edx, ebx
push edx
push eax
push str._u_MB
push ecx
call edi
add esp, 0x10
lea edx, [esi + 0x140]
push str.20108E
push edx
call ebp
mov eax, dword [0x40a19c]
cmp eax, ebx
jne 0x4034d5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x40a19c], eax
mov dword [esi + 0x160], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2e0
ret