Function at 0x4d0880
Capabilities:
Get common file path
Get geographical location
Get memory capacity
Get system information on windows
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x74]
mov eax, 0x16ac
call fcn.0059cbb0
mov eax, dword [0x665ebc]
xor eax, ebp
mov dword [ebp + 0x70], eax
mov eax, dword [ebp + 0x7c]
push ebx
push esi
push edi
push 0x3f
mov dword [ebp - 0x15ec], eax
pop eax
push 0xc6
mov word [ebp - 0x58], ax
xor esi, esi
lea eax, [ebp - 0x56]
push esi
push eax
call fcn.0059cb30
push 0xc4
lea eax, [ebp - 0x11c]
push esi
push eax
mov dword [ebp - 0x120], 0x412f4e
call fcn.0059cb30
add esp, 0x18
lea eax, [ebp - 0x15e8]
push eax
mov dword [ebp - 0x15e8], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
lea eax, [ebp - 0x1610]
push eax
mov dword [ebp - 0x1610], 0x20
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
lea eax, [ebp - 0x1638]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [ebp - 0x15d8], 1
jne 0x4d0934
mov eax, dword [ebp - 0x1620]
push 0x64
xor edx, edx
pop ecx
div ecx
mov word [ebp - 0x1618], ax
cmp word [ebp - 0x1638], si
jne 0x4d09c4
movzx eax, word [ebp - 0x1618]
mov ecx, eax
sub ecx, 3
je 0x4d09b5
dec ecx
je 0x4d09ae
dec ecx
je 0x4d096a
push eax
lea eax, [ebp - 0x58]
push 0x60c294
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x4d09c4
push str.Pentium
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [ebp - 0x15d8], 2
jne 0x4d09c4
movzx eax, byte [ebp - 0x1616]
push eax
mov eax, dword [ebp - 0x1616]
shr eax, 8
movzx eax, al
push eax
lea eax, [ebp - 0x120]
push str.Model__d__Stepping__d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4d09c4
push str.Intel_80486
jmp 0x4d09ba
push str.Intel_80386
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x114
lea eax, [ebp - 0x554]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov esi, dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
mov edi, 0xc8
push edi
lea eax, [ebp - 0x1e8]
push eax
push 0x1001
mov ebx, 0x400
push ebx
call esi
test eax, eax
jne 0x4d0a0c
push 0x608d28
lea eax, [ebp - 0x1e8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push edi
lea eax, [ebp - 0x440]
push eax
push 0x1002
push ebx
call esi
test eax, eax
jne 0x4d0a32
push 0x608d28
lea eax, [ebp - 0x440]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push edi
lea eax, [ebp - 0x378]
push eax
push 0x1001
mov ebx, 0x800
push ebx
call esi
test eax, eax
jne 0x4d0a5d
push 0x608d28
lea eax, [ebp - 0x378]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push edi
lea eax, [ebp - 0x2b0]
push eax
push 0x1002
push ebx
call esi
pop edi
pop esi
pop ebx
test eax, eax
jne 0x4d0a86
push 0x608d28
lea eax, [ebp - 0x2b0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [ebp - 0x15d8], 2
jne 0x4d0a96
mov eax, str.Windows_NT
jmp 0x4d0ab9
cmp dword [ebp - 0x15d8], 0
jne 0x4d0aa6
mov eax, str.Win32s
jmp 0x4d0ab9
cmp dword [ebp - 0x15d8], 1
mov eax, str.Windows_9x
je 0x4d0ab9
mov eax, str.Unknown_Windows
mov ecx, dword [ebp - 0x15fc]
shr ecx, 0x14
push ecx
mov ecx, dword [ebp - 0x1600]
shr ecx, 0x14
push ecx
mov ecx, dword [ebp - 0x1604]
shr ecx, 0x14
push ecx
mov ecx, dword [ebp - 0x1608]
shr ecx, 0x14
push ecx
lea ecx, [ebp - 0x15d4]
push ecx
movzx ecx, word [ebp - 0x15dc]
push ecx
push dword [ebp - 0x15e0]
push dword [ebp - 0x15e4]
push eax
lea eax, [ebp - 0x1554]
push str.Platform___s__i._i_build__i___s_r_nMemory_____lu____lu____lu____lu_r_n
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x2c
push 0
lea eax, [ebp - 0x15f0]
push eax
lea eax, [ebp - 0x1554]
push eax
call fcn.0059bf90
pop ecx
push eax
lea eax, [ebp - 0x1554]
push eax
push dword [ebp - 0x15ec]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [ebp + 0x70]
xor ecx, ebp
call fcn.0059ca15
add ebp, 0x74
leave
ret