Function at 0x402dd0
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 [0x408d98]
test eax, eax
jne 0x402e74
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 [0x408d94]
mov eax, dword [esp + 0x18]
push eax
call dword [0x408d90]
mov edi, dword [sym.imp.SHLWAPI.dll_StrStrA]
lea ecx, [esp + 0x68]
push str.2000
push ecx
call edi
test eax, eax
je 0x402ea5
lea edx, [esi + 0xc0]
push str.Windows_2000
mov dword [0x4084fc], 1
push edx
jmp 0x402f62
lea eax, [esp + 0x68]
push 0x4085c0
push eax
call edi
test eax, eax
je 0x402ec5
mov dword [0x4084fc], ebx
push str.Windows_XP
jmp 0x402f5b
lea edx, [esp + 0x68]
push str.2003
push edx
call edi
test eax, eax
je 0x402eed
lea eax, [esi + 0xc0]
push str.Windows_2003
mov dword [0x4084fc], 1
push eax
jmp 0x402f62
lea ecx, [esp + 0x68]
push str.Vista
push ecx
call edi
test eax, eax
je 0x402f11
lea edx, [esi + 0xc0]
push str.Windows_Vista
mov dword [0x4084fc], ebx
push edx
jmp 0x402f62
lea eax, [esp + 0x68]
push str.2008
push eax
call edi
test eax, eax
je 0x402f32
mov dword [0x4084fc], 1
push str.Windows_2008
jmp 0x402f5b
lea edx, [esp + 0x68]
push 0x408568
push edx
call edi
test eax, eax
mov dword [0x4084fc], ebx
je 0x402f56
lea eax, [esi + 0xc0]
push str.Windows_7
push eax
jmp 0x402f62
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 [0x408d98]
test eax, eax
jne 0x402fea
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 [0x408d94]
mov eax, dword [esp + 0x1c]
push eax
call dword [0x408d90]
mov ecx, dword [esp + 0x20]
mov edi, dword [0x408dcc]
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.00405c50
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.20108A
push edx
call ebp
mov eax, dword [0x40929c]
cmp eax, ebx
jne 0x403065
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x40929c], eax
mov dword [esi + 0x160], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2e0
ret