Function at 0x40523f
Capabilities:
Get geographical location
Get hostname
Get memory capacity
Get session user name

Disassembly:
push ebp
mov ecx, 8
mov ebp, esp
push ebx
push esi
push edi
sub esp, 0xa08
lea edi, [ebp - 0x1bc]
mov esi, 0x429a46
xor ebx, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, 8
lea edi, [ebp - 0x19c]
mov esi, 0x429a66
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x154], 0x94
mov dword [ebp - 0x17c], 0x40
mov dword [ebp - 0x178], 0x40
lea eax, [ebp - 0x154]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
push 0
mov byte [ebp - 0x1bc], 0
mov byte [ebp - 0xa0c], 0
mov byte [ebp - 0x1fc], 0
mov byte [ebp - 0x9cc], 0
mov byte [ebp - 0x908], 0
mov byte [ebp - 0x4a8], 0
mov byte [ebp - 0x948], 0
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push 1
mov esi, eax
call dword [sym.imp.USER32.dll_GetSystemMetrics]
cmp dword [ebp + 0xc], 1
mov edi, eax
jne 0x4052f4
mov eax, esi
imul eax, edi
shl eax, 2
jmp 0x40587e
lea eax, [ebp - 0xa0]
push eax
push 0xffffffffffffffff
push 0
call dword [sym.imp.USER32.dll_EnumDisplaySettingsA]
test eax, eax
je 0x40530c
mov ebx, dword [ebp - 0x38]
cmp ebx, 0x20
push esi
setg al
lea eax, [ebp - 0x428]
push 0x429a88
push eax
call fcn.0040b2b0
lea eax, [ebp - 0x428]
add esp, 0xc
push edi
push eax
lea eax, [ebp - 0x428]
push str._sx_d
push eax
call fcn.0040b2b0
mov edx, dword [ebp - 0x38]
add esp, 0x10
cmp edx, 0x81
jae 0x40536a
lea eax, [ebp - 0x428]
push edx
push eax
lea eax, [ebp - 0x428]
push str._s___d_bits
push eax
call fcn.0040b2b0
add esp, 0x10
mov ebx, dword [ebp - 0x28]
cmp ebx, 1
jbe 0x40538e
lea eax, [ebp - 0x428]
push ebx
push eax
lea eax, [ebp - 0x428]
push str._s___d_hz
push eax
call fcn.0040b2b0
add esp, 0x10
lea eax, [ebp - 0xa0c]
lea ecx, [ebp - 0x17c]
push ecx
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameA]
lea eax, [ebp - 0x9cc]
lea edx, [ebp - 0x178]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
lea eax, [ebp - 0x384]
push 0x3f
push eax
push 8
push 0x800
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
lea eax, [ebp - 0x344]
push 0x3f
push eax
push 0x1002
push 0x800
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
lea eax, [ebp - 0x27c]
push 0x3f
push eax
push 7
push 0x800
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
lea eax, [ebp - 0x284]
push 6
push eax
push 5
push 0x800
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
lea eax, [ebp - 0x2c4]
push 0x3f
push eax
push 0x1001
push 0x800
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
lea eax, [ebp - 0x304]
push 0x3f
push eax
push 4
push 0x800
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
lea eax, [ebp - 0x23c]
push 0x3f
push eax
push 3
push 0x800
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
lea eax, [ebp - 0x23c]
push 0x3f
push eax
push 3
push 0x800
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
cmp dword [0x425910], 0
je 0x40548a
lea eax, [ebp - 0x98c]
push 0x429aac
push eax
call fcn.0040b2b0
pop ecx
pop ecx
jmp 0x405491
mov byte [ebp - 0x98c], 0
push 0
call fcn.0040b720
pop ecx
mov dword [0x425944], eax
push 0x425944
call fcn.0040b740
mov dword [0x425900], eax
pop ecx
push eax
lea eax, [ebp - 0x988]
push str._d__b__Y___H:_M:_S
push 0x40
push eax
call fcn.0040b7f0
lea eax, [ebp - 0x98c]
add esp, 0x10
push eax
lea eax, [ebp - 0x8c8]
push str.SOFTWAREMicrosoftWindows_sCurrentVersion
push eax
call fcn.0040b2b0
lea eax, [ebp - 0x8c8]
add esp, 0xc
push 1
push str.RegisteredOwner
push eax
lea eax, [ebp - 0x948]
push reloc.WSOCK32.dll_bind
push eax
push 1
push 0
call fcn.00406783
lea eax, [ebp - 0x8c8]
add esp, 0x1c
push 1
push str.RegisteredOrganization
push eax
lea eax, [ebp - 0x908]
push reloc.WSOCK32.dll_bind
push eax
push 1
push 0
call fcn.00406783
lea eax, [ebp - 0x4a8]
add esp, 0x1c
push 1
push 0x429b18
push str.SoftwareMirabilisICQOwners
push reloc.WSOCK32.dll_accept
push eax
lea eax, [ebp - 0x4a8]
push 7
push eax
call fcn.00406783
add esp, 0x1c
cmp dword [0x425910], 0
je 0x40556c
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0xa14], eax
jmp 0x405579
movzx eax, word [ebp - 0x148]
mov dword [ebp - 0xa14], eax
lea eax, [ebp - 0x174]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea eax, [ebp - 0x164]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx ebx, word [ebp - 0x162]
movzx ecx, word [ebp - 0x172]
movzx eax, word [ebp - 0x15e]
imul ebx, ebx, 0x1e
imul ecx, ecx, 0x1e
add ebx, eax
movzx eax, word [ebp - 0x16e]
add ecx, eax
cmp ecx, ebx
jge 0x4055c5
add word [ebp - 0x15c], 0x18
movzx edx, word [ebp - 0x162]
movzx eax, word [ebp - 0x15e]
imul edx, edx, 0x1e
add edx, eax
cmp ecx, edx
jle 0x4055e4
add word [ebp - 0x16c], 0x18
movzx eax, word [ebp - 0x15c]
movzx edi, word [ebp - 0x16c]
movzx esi, word [ebp - 0x16a]
sub edi, eax
movzx eax, word [ebp - 0x15a]
sub esi, eax
test esi, esi
je 0x405620
lea eax, [ebp - 0x4c8]
push esi
push edi
push str._d:_u
push eax
call fcn.0040b2b0
add esp, 0x10
jmp 0x405635
lea eax, [ebp - 0x4c8]
push edi
push 0x429b44
push eax
call fcn.0040b2b0
add esp, 0xc
lea eax, [ebp - 0xc0]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov byte [ebp - 0x3e8], 0
lea eax, [ebp - 0x3e8]
push eax
call fcn.00407136
lea eax, [ebp - 0x1fc]
pop ecx
push 0x58
push 0
push 0
push eax
push 0
push 0
push 0
push 0
call fcn.00407275
add esp, 0x20
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor edx, edx
mov ecx, 0x3e8
div ecx
mov edi, 0x15180
mov ecx, 0x15180
xor edx, edx
mov esi, eax
div edi
xor edx, edx
mov ebx, eax
mov eax, esi
mov esi, 0xe10
div ecx
mov ecx, 0xe10
mov edi, edx
xor edx, edx
mov eax, edi
div ecx
xor edx, edx
mov dword [ebp - 0xa10], eax
mov eax, edi
mov edi, 0x3c
div esi
mov esi, 0x3c
mov ecx, edx
xor edx, edx
mov eax, ecx
div esi
xor edx, edx
mov esi, eax
mov eax, ecx
div edi
test ebx, ebx
mov edi, edx
je 0x4056ed
lea eax, [ebp - 0x1bc]
push ebx
push 0x429b48
push eax
call fcn.0040b2b0
add esp, 0xc
lea eax, [ebp - 0x1bc]
push edi
push esi
push dword [ebp - 0xa10]
push eax
lea eax, [ebp - 0x1bc]
push 0x429b54
push eax
call fcn.0040b2b0
mov eax, dword [0x425934]
mov ecx, 0x15180
cdq
mov esi, 0x15180
add esp, 0x18
idiv ecx
mov ecx, 0xe10
mov ebx, eax
mov eax, dword [0x425934]
cdq
idiv esi
mov esi, 0xe10
mov edi, edx
mov eax, edi
cdq
idiv ecx
mov dword [ebp - 0xa10], eax
mov eax, edi
cdq
mov edi, 0x3c
idiv esi
mov esi, 0x3c
mov ecx, edx
mov eax, ecx
cdq
idiv esi
mov esi, eax
mov eax, ecx
cdq
idiv edi
test ebx, ebx
mov edi, edx
je 0x40577b
lea eax, [ebp - 0x19c]
push ebx
push str._d_days_
push eax
call fcn.0040b2b0
add esp, 0xc
lea eax, [ebp - 0x19c]
push edi
push esi
push dword [ebp - 0xa10]
push eax
lea eax, [ebp - 0x19c]
push str._s_02d:_02d:_02d
push eax
call fcn.0040b2b0
mov eax, dword [ebp - 0xb8]
add esp, 0x18
mov edx, dword [ebp - 0xb4]
shr eax, 0x14
shr edx, 0x14
push eax
lea eax, [ebp - 0x428]
push edx
lea edi, [ebp - 0x4c8]
push eax
lea eax, [ebp - 0x23c]
push edi
lea ebx, [ebp - 0x304]
push eax
lea eax, [ebp - 0x2c4]
push ebx
lea ecx, [ebp - 0x284]
push eax
lea eax, [ebp - 0x27c]
push ecx
lea edx, [ebp - 0x384]
push eax
lea eax, [ebp - 0x344]
push edx
lea esi, [ebp - 0x19c]
push eax
lea eax, [ebp - 0x1bc]
push esi
push eax
lea eax, [ebp - 0x988]
lea edi, [ebp - 0x4a8]
lea ebx, [ebp - 0x3e8]
push 0x41d860
push eax
lea eax, [ebp - 0x1fc]
push edi
push eax
lea eax, [ebp - 0x908]
push ebx
lea ecx, [ebp - 0x948]
push eax
lea eax, [ebp - 0x9cc]
push ecx
push eax
lea eax, [ebp - 0x154]
add eax, 0x14
lea edx, [ebp - 0xa0c]
push edx
push eax
lea eax, [ebp - 0x98c]
push dword [ebp - 0xa14]
push dword [ebp - 0x14c]
push dword [ebp - 0x150]
push eax
push dword [0x425920]
push 0x427a80
push str.Version:__s_nUID:__04X_n_nWindows_s__lu._lu._lu__s_nUser:__s_nComputer:__s_nOwner:__s___s__nIP:__s_nProxy:__s_nICQ:__s_r_nCurrent_Time:__s_nUptime_since:__s_nWindows_Uptime:__s_nUser_Idle:__s_nCountry:__s___s___s_s_nLang:__s___s___s_nTimeZone:__s_nScreen:__s_nRAM:__lu__lu_MB_free_n
push dword [ebp + 8]
call fcn.0040b2b0
add esp, 0x7c
xor eax, eax
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret