Function at 0x41f020
Capabilities:
Get memory capacity
Query environment variable

Disassembly:
push 0x318
mov eax, 0x44ddf3
call fcn.0043676f
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2d8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x2e4], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x2e0], eax
mov dword [ebp - 0x2d0], 1
call fcn.004234c0
push eax
lea ecx, [ebp - 0x2d4]
call fcn.0040f910
and dword [ebp - 4], 0
mov esi, 0x11c
push esi
lea eax, [ebp - 0x2c4]
push 0
push eax
call fcn.00434dc0
add esp, 0xc
lea eax, [ebp - 0x2c4]
push eax
mov dword [ebp - 0x2c4], esi
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
movzx edi, word [ebp - 0x1b0]
mov esi, dword [ebp - 0x2c0]
imul edi, edi, 0xa
movzx eax, word [ebp - 0x1ae]
imul esi, esi, 0xa
mov ebx, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
add esi, dword [ebp - 0x2bc]
add edi, eax
push 0xc8
lea eax, [ebp - 0x1a4]
push eax
push str.ProgramW6432
call ebx
test eax, eax
seta byte [ebp - 0x2c5]
cmp byte [ebp - 0x2c5], 0
jne 0x41f116
push 0xc8
lea eax, [ebp - 0x1a4]
push eax
push str.PROCESSOR_ARCHITECTURE
call ebx
test eax, eax
jbe 0x41f116
lea eax, [ebp - 0x1a4]
push str.AMD64
push eax
call fcn.00435204
neg eax
sbb al, al
pop ecx
inc al
pop ecx
mov byte [ebp - 0x2c5], al
test dword [ebp - 0x1ac], 0x8000
je 0x41f126
push 0x48
jmp 0x41f134
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x41f137
push 0x32
pop eax
jmp 0x41f14d
xor eax, eax
cmp byte [ebp - 0x1aa], 1
sete al
lea eax, [eax*4 + 0x53]
movzx eax, ax
xor ecx, ecx
cmp byte [ebp - 0x2c5], cl
movzx eax, ax
sete cl
dec ecx
and ecx, 3
add ecx, 3
push ecx
push eax
push dword [ebp - 0x2bc]
lea eax, [ebp - 0x1a4]
push dword [ebp - 0x2c0]
push str._d_d_c_d
push eax
call fcn.00423015
add esp, 0x18
lea eax, [ebp - 0x324]
push eax
mov dword [ebp - 0x324], 0x40
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov ebx, dword [ebp - 0x31c]
mov eax, dword [ebp - 0x318]
shrd ebx, eax, 0x14
shr eax, 0x14
mov dword [ebp - 0x2dc], ebx
xor ecx, ecx
xor eax, eax
inc eax
xor edx, edx
shl eax, cl
inc ecx
inc edx
shl edx, cl
mov dword [ebp - 0x2cc], ecx
cmp eax, ebx
jae 0x41f1cf
cmp ebx, edx
jb 0x41f1dc
mov ecx, dword [ebp - 0x2cc]
cmp ecx, 0x1e
jl 0x41f1b6
jmp 0x41f1de
mov ebx, edx
push ebx
push dword [ebp - 0x2dc]
lea eax, [ebp - 0x1a4]
push eax
push edi
push esi
lea eax, [ebp - 0x2d4]
push str.CheckSystemRequirements_os_sp___d__d_osString___s__physicalMemory___d____d
push eax
call fcn.004020dd
add esp, 0x1c
push 0
lea eax, [ebp - 0x2d4]
push eax
push 2
call fcn.0040e1e3
mov eax, dword [ebp - 0x2d8]
mov eax, dword [eax]
add esp, 0xc
cmp dword [eax - 0xc], 0
jle 0x41f25c
push eax
call fcn.004352cf
pop ecx
xor ecx, ecx
cmp esi, eax
setge cl
mov dword [ebp - 0x2d0], ecx
test ecx, ecx
jne 0x41f25c
push str.CheckSystemRequirements_failed._Required_MinOS:
lea ecx, [ebp - 0x2cc]
call fcn.00402148
push 0
push dword [ebp - 0x2d8]
mov byte [ebp - 4], 1
jmp 0x41f2dd
mov esi, dword [ebp - 0x2e0]
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jle 0x41f27e
push eax
call fcn.004352cf
pop ecx
xor ecx, ecx
cmp edi, eax
setge cl
mov dword [ebp - 0x2d0], ecx
cmp dword [ebp - 0x2d0], 0
jne 0x41f29d
push str.CheckSystemRequirements_failed._Required_MinServicePack:
lea ecx, [ebp - 0x2cc]
call fcn.00402148
mov byte [ebp - 4], 2
jmp 0x41f2da
mov esi, dword [ebp - 0x2e4]
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jle 0x41f2bd
push eax
call fcn.004352cf
cmp ebx, eax
sbb eax, eax
inc eax
pop ecx
mov dword [ebp - 0x2d0], eax
cmp dword [ebp - 0x2d0], 0
jne 0x41f2fc
push str.CheckSystemRequirements_failed._Required_MinMemory:
lea ecx, [ebp - 0x2cc]
call fcn.00402148
mov byte [ebp - 4], 3
push 0
push esi
lea eax, [ebp - 0x2cc]
push eax
push 2
call fcn.0040dd5d
mov ecx, dword [ebp - 0x2cc]
add esp, 0x10
add ecx, 0xfffffff0
call fcn.004025ca
mov ecx, dword [ebp - 0x2d4]
add ecx, 0xfffffff0
call fcn.004025ca
mov eax, dword [ebp - 0x2d0]
call fcn.004367f2
ret