Function at 0x40f988
Capabilities:
Get memory capacity
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x104c
call fcn.0041ccc0
push ebx
push esi
push edi
push 0x40
pop esi
push esi
xor ebx, ebx
lea eax, [esp + 0x8c]
push ebx
push eax
call fcn.0041db90
add esp, 0xc
lea edi, [esp + 0xc8]
xor eax, eax
push 0xa
pop ecx
rep stosd dword es:[edi], eax
lea ecx, [esp + 0xc38]
call fcn.0040117c
lea ecx, [esp + 0x818]
call fcn.0040117c
lea ecx, [esp + 0xe48]
call fcn.0040117c
lea ecx, [esp + 0x608]
call fcn.0040117c
lea ecx, [esp + 0xa28]
call fcn.0040117c
lea ecx, [esp + 0xf0]
call fcn.0044d5c6
xor eax, eax
lea edi, [esp + 0x78]
stosd dword es:[edi], eax
push 0xa
pop ecx
push ebx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [esp + 0x164]
rep stosd dword es:[edi], eax
call fcn.0042b6c8
pop ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebx
cmp edx, dword [0x4bb634]
jl 0x40fa4d
mov ecx, dword [0x4bb630]
jg 0x40fa43
cmp eax, ecx
jbe 0x40fa4d
mov ebx, eax
sub ebx, ecx
mov dword [esp + 0x10], ebx
xor ebx, ebx
lea ecx, [esp + 0x78]
call fcn.004091a8
lea eax, [esp + 0x88]
mov dword [esp + 0x88], esi
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
test eax, eax
jne 0x40fa81
push esi
lea eax, [esp + 0x8c]
push ebx
push eax
call fcn.0041db90
add esp, 0xc
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push 0x28
pop eax
push eax
mov dword [esp + 0xcc], eax
lea eax, [esp + 0xcc]
push eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_K32GetProcessMemoryInfo]
test eax, eax
jne 0x40fab3
push 0xa
pop ecx
lea edi, [esp + 0xc8]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push ebx
xor edx, edx
lea ecx, [esp + 0x81c]
call fcn.004079f0
pop ecx
lea ecx, [esp + 0xe48]
call fcn.0040f7ea
lea eax, [esp + 0xc]
push eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetProcessHandleCount]
neg eax
push 0x80
sbb eax, eax
and dword [esp + 0x10], eax
lea eax, [esp + 0x18c]
push ebx
push eax
call fcn.0041db90
add esp, 0xc
lea eax, [esp + 0x188]
mov edi, 0x100
mov edx, str.SOFTWAREMetaQuotes_Software
mov ecx, reloc.OLEAUT32.dll_SysReAllocString
push edi
push 0x7e
push eax
push 0x46d038
call fcn.00403e35
add esp, 0x10
mov esi, 0x2710
test al, al
je 0x40fb4e
lea eax, [esp + 0x188]
push eax
call fcn.0042b644
pop ecx
cmp edx, ebx
jg 0x40fb96
jl 0x40fb4e
cmp eax, esi
jae 0x40fb96
push edi
push 0x7e
lea eax, [esp + 0x190]
mov edx, str.SOFTWAREMetaQuotes_Software
push eax
push 0x46d038
mov ecx, SysReAllocStringLen
call fcn.00403e35
add esp, 0x10
test al, al
je 0x40fb8c
lea eax, [esp + 0x188]
push eax
call fcn.0042b644
pop ecx
cmp edx, ebx
jg 0x40fb96
jl 0x40fb8c
cmp eax, esi
jae 0x40fb96
xor eax, eax
mov word [esp + 0x188], ax
mov esi, 0x200
lea eax, [esp + 0x408]
push esi
push ebx
push eax
call fcn.0041db90
add esp, 0xc
lea eax, [esp + 0x208]
push esi
push ebx
push eax
call fcn.0041db90
add esp, 0xc
lea eax, [esp + 0x208]
mov esi, reloc.OLEAUT32.dll_SysReAllocString
mov edx, str.HARDWAREDESCRIPTIONSystem
mov ecx, esi
push edi
push 0x1fe
push eax
push str.SystemBiosVersion
call fcn.00403e35
add esp, 0x10
test al, al
jne 0x40fbf6
xor eax, eax
mov word [esp + 0x208], ax
jmp 0x40fc13
lea eax, [esp + 0x208]
push 0x472d94
push eax
call fcn.0041ce8e
pop ecx
pop ecx
test eax, eax
je 0x40fc13
xor ecx, ecx
mov word [eax], cx
push edi
push 0x1fe
lea eax, [esp + 0x410]
mov edx, str.HARDWAREDESCRIPTIONSystemBIOS
push eax
push 0x46cf94
mov ecx, esi
call fcn.00403e35
add esp, 0x10
test al, al
jne 0x40fc48
xor eax, eax
mov word [esp + 0x408], ax
jmp 0x40fd0a
lea eax, [esp + 0x408]
push 0x472d94
push eax
call fcn.0041ce8e
pop ecx
pop ecx
test eax, eax
je 0x40fc65
xor ecx, ecx
mov word [eax], cx
cmp word [esp + 0x408], 0
je 0x40fcaa
cmp word [esp + 0x208], 0
je 0x40fc91
push 0x471e38
lea eax, [esp + 0x20c]
push edi
push eax
call fcn.004242a0
add esp, 0xc
lea eax, [esp + 0x408]
push eax
lea eax, [esp + 0x20c]
push edi
push eax
call fcn.004242a0
add esp, 0xc
push edi
push 0x1fe
lea eax, [esp + 0x410]
mov edx, str.HARDWAREDESCRIPTIONSystemBIOS
push eax
push str.BaseBoardProduct
mov ecx, esi
call fcn.00403e35
add esp, 0x10
test al, al
je 0x40fd0a
cmp word [esp + 0x408], 0
je 0x40fd0a
push 0x471e38
lea eax, [esp + 0x20c]
push edi
push eax
call fcn.004242a0
add esp, 0xc
lea eax, [esp + 0x408]
push eax
lea eax, [esp + 0x20c]
push edi
push eax
call fcn.004242a0
add esp, 0xc
mov ecx, dword [0x4c71f8]
mov esi, str.write
mov edx, str.read
cmp ecx, 0xc0000005
jne 0x40fd30
cmp dword [0x4c720c], 0
mov eax, esi
cmove eax, edx
jmp 0x40fd35
mov eax, 0x47242c
push eax
push dword [0x4c7204]
lea eax, [esp + 0x610]
push ecx
push str._.8X_at__p__s
push eax
call fcn.004011fb
mov eax, dword [0x4ba4c4]
lea ecx, [esp + 0x104]
add esp, 0x14
add eax, eax
push eax
push dword [0x4ba4c0]
call fcn.0044d611
push 4
push 0x4bb5d4
lea ecx, [esp + 0xf8]
call fcn.0044d611
mov eax, dword [esp + 0x820]
lea ecx, [esp + 0xf0]
add eax, eax
push eax
push dword [esp + 0x820]
call fcn.0044d611
mov eax, dword [esp + 0x610]
lea ecx, [esp + 0xf0]
add eax, eax
push eax
push dword [esp + 0x610]
call fcn.0044d611
lea ecx, [esp + 0xf0]
call fcn.0044d6c9
push 0x27
push 0x4bb57c
lea ecx, [esp + 0xf8]
call fcn.0044d739
push ecx
lea eax, [esp + 0x164]
push eax
lea ecx, [esp + 0xf8]
call fcn.0044d405
push 0x28
lea eax, [esp + 0x164]
push eax
push 0x10
pop edx
lea ecx, [esp + 0x80]
call fcn.0044d49a
pop ecx
pop ecx
mov edi, ebx
movzx eax, byte [esp + edi + 0x78]
push eax
lea eax, [esp + 0xa2c]
push 0x4679d8
push eax
call fcn.004011fb
add esp, 0xc
lea eax, [esp + 0xa28]
lea ecx, [esp + 0xc38]
push eax
call fcn.00401262
inc edi
cmp edi, 0x10
jb 0x40fe0a
mov ecx, dword [0x4c71f8]
mov eax, ebx
cmp dword [eax*8 + 0x492340], ecx
je 0x40fe5a
inc eax
cmp eax, 0x1c
jb 0x40fe47
mov edx, ebx
jmp 0x40fe61
mov edx, dword [eax*8 + 0x492344]
cmp ecx, 0xc0000005
jne 0x40fe7f
cmp dword [0x4c720c], 0
mov eax, str.read
cmove esi, eax
mov eax, dword [0x4c7210]
jmp 0x40fe86
mov esi, 0x47242c
mov eax, ebx
push eax
push esi
push dword [0x4c7204]
test edx, edx
mov eax, 0x4679ec
push ecx
cmovne eax, edx
push eax
lea eax, [esp + 0x61c]
push str._s__.8X_at__p__s_to__.8X
push eax
call fcn.004011fb
mov eax, dword [esp + 0x628]
add esp, 0x1c
mov dword [esp + 0x18], eax
mov eax, dword [0x4bb368]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc3c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xa4]
shrd ecx, eax, 0x14
mov ebx, dword [0x4baf38]
shr eax, 0x14
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0xa8]
shrd ecx, eax, 0x14
shr eax, 0x14
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x90]
shrd ecx, eax, 0x14
shr eax, 0x14
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x98]
shrd ecx, eax, 0x14
shr eax, 0x14
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xe8]
shr eax, 0x14
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xb0]
sub ecx, dword [esp + 0xb8]
sbb eax, dword [esp + 0xbc]
shrd ecx, eax, 0x14
shr eax, 0x14
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xd4]
shr eax, 0x14
mov dword [esp + 0x54], eax
mov eax, dword [0x4bab08]
mov dword [esp + 0x58], eax
mov eax, dword [0x4bb150]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xe4c]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x60], eax
call fcn.00403c7f
mov edi, eax
mov dword [esp + 0x14], 0x3c
mov eax, dword [0x4ba6dc]
mov ecx, 0x4679ec
test eax, eax
mov esi, 0x4679f0
mov eax, dword [esp + 0x10]
cmove esi, ecx
cmovne ecx, dword [0x4ba6d8]
xor edx, edx
div dword [esp + 0x14]
push dword [esp + 0x18]
mov dword [esp + 0x68], eax
push dword [esp + 0x20]
push dword [esp + 0x28]
cmp dword [0x4ba6dc], 0
mov eax, str.Developer___:
push dword [esp + 0x30]
push dword [esp + 0x38]
push dword [esp + 0x40]
push dword [esp + 0x48]
push dword [esp + 0x50]
push dword [esp + 0x58]
push dword [esp + 0x60]
push dword [esp + 0x68]
push dword [esp + 0x70]
push 0
push dword [esp + 0x7c]
push dword [esp + 0x84]
push dword [esp + 0x8c]
push 0
push dword [esp + 0x98]
push ebx
push dword [esp + 0xa4]
push dword [esp + 0xac]
push dword [esp + 0xb4]
push edi
push esi
push ecx
mov ecx, 0x4679ec
cmove eax, ecx
mov ecx, 0xe10
push eax
lea eax, [esp + 0x1f0]
push eax
lea eax, [esp + 0x274]
push eax
push dword [esp + 0x88c]
mov eax, dword [esp + 0xd8]
push dword [0x4bb5d8]
push dword [0x4bb5e0]
push dword [0x4bb5d4]
push dword [0x4bb5d0]
push dword [0x4ba4c0]
push edx
xor edx, edx
div dword [esp + 0xa0]
mov eax, dword [esp + 0x9c]
push edx
xor edx, edx
div ecx
push eax
movzx eax, word [esp + 0x106]
push eax
movzx eax, word [esp + 0x108]
push eax
movzx eax, word [esp + 0x10a]
push eax
movzx eax, word [esp + 0x10a]
push eax
movzx eax, word [esp + 0x10c]
push eax
push 0x4bb57c
push dword [0x4ba2a8]
push str.Filename____:__s._s_r_nTime________:__04u._02u._02u__02u:_02u___u:_02u:_02u__r_nProgram_____:__s_r_nVersion_____:__d._d___s__r_nRevision____:__d_r_nOS__________:__s_r_nBIOS________:__s_r_nID__________:__s_r_n_s_s_sProcessors__:__u_x__s_r_nVideo_______:__s_r_nCompany_____:__s_r_nComputer____:__s_r_nMemory______:__I64u_Mb_r_nVirtual_____:__I64u_Mb_r_nCommit______:__I64u_Mb_r_nOS_Memory___:__I64u_free_of__I64u_Mb_r_nOS_Commit___:__I64u_free_of__I64u_Mb_r_nHandles_____:__lu_r_nCrashMD5____:__s_r_nCustomInfo__:__s_r_nException___:__s_r_n_r_n
push 0xffffffffffffffff
push 0x100000
push dword [0x4bb638]
call fcn.00401ea4
add esp, 0xc0
lea ecx, [esp + 0xf0]
call fcn.0044d5e5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret