Function at 0x403580
Capabilities:
Get common file path
Get memory capacity
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2bc
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
lea eax, [ebp - 0x2bc]
mov esi, ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push str._nHardware_information:_n
push esi
call fcn.00401010
push dword [ebp - 0x2bc]
push str.__OEM_ID:__u_n
push esi
call fcn.00401010
add esp, 0x14
push dword [ebp - 0x2a8]
push str.__Number_of_processors:__u_n
push esi
call fcn.00401010
add esp, 0xc
push dword [ebp - 0x2a4]
push str.__Processor_type:__u_n
push esi
call fcn.00401010
add esp, 0xc
push str.__Processor_architecture:
push esi
call fcn.00401010
movzx eax, word [ebp - 0x2bc]
add esp, 8
cmp eax, 0xc
ja case.0x40360b.1
movzx eax, byte [eax + 0x40386c]
jmp dword [eax*4 + 0x403854]
mov eax, str.x86_n
jmp 0x40363a
mov eax, str.ARM_n
jmp 0x40363a
mov eax, str.x64_n
jmp 0x40363a
mov eax, str.Itanium_based_n
jmp 0x40363a
mov eax, str.ARM64_n
jmp 0x40363a
mov eax, str.Unknown_n
push eax
push esi
call fcn.00401010
add esp, 8
mov dword [ebp - 0x1d0], 0x40
lea eax, [ebp - 0x1d0]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov ecx, dword [ebp - 0x1c8]
mov eax, dword [ebp - 0x1c4]
shrd ecx, eax, 0x14
shr eax, 0x14
push eax
push ecx
push str.__Total_physical_memory:__llu_MB_n
push esi
call fcn.00401010
mov ecx, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x1bc]
shrd ecx, eax, 0x14
shr eax, 0x14
push eax
push ecx
push str.__Available_physical_memory:__llu_MB_n
push esi
call fcn.00401010
push dword [ebp - 0x2b8]
push str.__Page_size:__u_bytes_n
push esi
call fcn.00401010
add esp, 0x2c
push dword [ebp - 0x2b4]
push str.__Minimum_application_address:_0x_lx_n
push esi
call fcn.00401010
add esp, 0xc
push dword [ebp - 0x2b0]
push str.__Maximum_application_address:_0x_lx_n
push esi
call fcn.00401010
add esp, 0xc
push dword [ebp - 0x2ac]
push str.__Active_processor_mask:_0x_x_n
push esi
call fcn.00401010
add esp, 0xc
mov dword [ebp - 0x298], 0x9c
lea eax, [ebp - 0x298]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
push str._nOperating_System_information:_n
push esi
call fcn.00401010
push dword [ebp - 0x290]
push dword [ebp - 0x294]
push str.__OS_Version:__u._u_n
push esi
call fcn.00401010
lea eax, [ebp - 0x284]
push eax
push str.__Service_Pack:__s_n
push esi
call fcn.00401010
add esp, 0x24
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx eax, ax
push eax
lea eax, [ebp - 0xc]
push str._04x
push eax
call fcn.00404c50
add esp, 0xc
lea eax, [ebp - 0xc]
push eax
push str.__System_Language:__s_n
push esi
call fcn.00401010
add esp, 0xc
lea eax, [ebp - 0x190]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
movzx eax, word [ebp - 0x184]
push eax
movzx eax, word [ebp - 0x186]
push eax
movzx eax, word [ebp - 0x188]
push eax
movzx eax, word [ebp - 0x18a]
push eax
movzx eax, word [ebp - 0x18e]
push eax
movzx eax, word [ebp - 0x190]
push eax
lea eax, [ebp - 0x78]
push str._04d__02d__02d__02d:_02d:_02d
push eax
call fcn.00404c90
add esp, 0x20
cmp eax, 0xffffffff
jne 0x4037c9
push str.Failed_to_retrieve_Initial_Installation_Date._n
push esi
call fcn.00401010
add esp, 8
jmp 0x4037db
lea eax, [ebp - 0x78]
push eax
push str.Initial_Installation_Date:__s_n
push esi
call fcn.00401010
add esp, 0xc
lea eax, [ebp - 0x1f4]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push dword [ebp - 0x1e0]
push str.Processor:__d_logical_processors_n
push esi
call fcn.00401010
add esp, 0xc
lea eax, [ebp - 0x180]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
jne 0x40382f
push str.Failed_to_retrieve_Boot_Device._n
push esi
call fcn.00401010
add esp, 8
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004062e5
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x180]
push eax
push str.Boot_Device:__s_n
push esi
call fcn.00401010
mov ecx, dword [ebp - 4]
add esp, 0xc
xor ecx, ebp
pop esi
call fcn.004062e5
mov esp, ebp
pop ebp
ret