Function at 0x50aa23
Capabilities:
Get memory capacity

Disassembly:
mov eax, 0x6b702f
call fcn.00651da4
mov eax, dword [0x7c6550]
sub esp, 0x2c
shr eax, 2
push esi
push edi
test al, 1
je 0x50aa5a
call fcn.004a3c96
mov esi, dword [eax + 4]
mov edi, esi
jmp 0x50aa54
mov ecx, dword [esi + 8]
push 1
mov eax, dword [ecx]
call dword [eax + 0x14]
mov esi, dword [esi]
cmp esi, edi
jne 0x50aa4a
mov eax, dword fs:[0x2c]
mov ecx, dword [0x7f8ad8]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x7ceba0]
cmp eax, dword [ecx + 4]
jle 0x50aaa6
mov esi, 0x7ceba0
push esi
call fcn.00651f0b
cmp dword [0x7ceba0], 0xffffffff
pop ecx
jne 0x50aaa6
mov eax, dword [0x7c5a10]
mov dword [0x7ceb98], eax
mov eax, dword [0x7c5a14]
push esi
mov dword [0x7ceb9c], eax
call fcn.00651ecc
pop ecx
mov ecx, dword [0x7ceb98]
mov eax, dword [0x7ceb9c]
add ecx, 2
mov edx, dword [0x7c5a14]
push ebx
push 0
pop edi
adc eax, edi
cmp eax, edx
jg 0x50ab09
mov eax, dword [0x7c5a10]
jl 0x50aacf
cmp ecx, eax
jae 0x50ab09
mov ebx, 0x7ceb44
mov dword [0x7ceb98], eax
push ebx
mov dword [0x7ceb9c], edx
call fcn.00467ec4
mov esi, 0x7ce800
mov ecx, esi
call fcn.0050b403
add esi, 0x24
cmp esi, 0x7ceb3c
jl 0x50aaea
push ebx
mov dword [ebp - 4], edi
call fcn.00468001
or dword [ebp - 4], 0xffffffff
push 5
mov edx, 0x7ce738
pop esi
mov eax, dword [edx]
mov ecx, dword [edx - 4]
mov dword [edx], ecx
sub ecx, eax
mov dword [edx + 4], ecx
mov eax, dword [edx - 8]
mov dword [edx - 8], edi
add dword [edx + 8], eax
mov dword [edx + 0x10], eax
adc dword [edx + 0xc], edi
lea edx, [edx + 0x1c]
sub esi, 1
jne 0x50ab11
cmp byte [0x7ce6e2], 0
je 0x50ab48
mov esi, dword [0x7ce6fc]
shl esi, 0x14
jmp 0x50ab4e
mov esi, dword [0x7ce6d4]
movzx eax, byte [0x7ce6e8]
neg eax
sbb eax, eax
and eax, esi
push eax
push 0x7ce7f0
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.DLL_GlobalMemoryStatus]
push edi
push esi
push edi
push dword [ebp - 0x30]
call fcn.00497cb4
push edi
push eax
mov eax, dword [ebp - 0x20]
add eax, 0xf3800000
push edi
push eax
call fcn.00497cb4
push edi
mov edi, dword [sym.imp.KERNEL32.DLL_InterlockedExchangeAdd]
mov ebx, eax
push 0x7ce7f0
mov dword [ebp - 0x14], edx
call edi
push 0
push 0x7ce7ec
mov esi, eax
call edi
mov ecx, eax
mov eax, esi
cdq
push edx
push eax
mov eax, ecx
cdq
push edx
push eax
call fcn.00497cb4
xor ecx, ecx
sub ebx, eax
mov dword [ebp - 0x10], ebx
mov eax, 0x100000
sbb ecx, edx
jne 0x50abdb
cmp ebx, eax
ja 0x50abdb
and dword [ebp - 0x14], 0
mov esi, eax
mov dword [ebp - 0x10], esi
jmp 0x50abe1
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0x14], ecx
cmp byte [0x7ce6f5], 0
mov ebx, 0x7ce7e8
je 0x50ac13
cmp byte [0x7ce6f6], 0
je 0x50ac17
push 0
push ebx
call edi
neg eax
sbb eax, eax
and eax, 0xffff63c0
add eax, 0x13880
cmp dword [0x7c5aec], eax
jae 0x50ac17
push 0
jmp 0x50ac21
cmp byte [0x7ce6e3], 0
jne 0x50ac34
push esi
and dword [0x7ce7f8], 0
push ebx
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
jmp 0x50ad29
call fcn.00543ba8
push 0
add eax, eax
push 0x7ce7f0
mov dword [ebp - 0x14], eax
call edi
push 0
push 0x7ce7ec
mov edi, eax
call dword [sym.imp.KERNEL32.DLL_InterlockedExchangeAdd]
cdq
mov ecx, eax
mov esi, edx
mov eax, edi
cdq
sub eax, ecx
push 0
sbb edx, esi
mov esi, dword [ebp - 0x14]
add eax, esi
pop edi
adc edx, edi
cmp edi, edx
ja 0x50ac7a
jb 0x50ac76
cmp esi, eax
ja 0x50ac7a
mov esi, eax
mov edi, edx
mov ecx, dword [ebp - 0x20]
xor eax, eax
sub ecx, esi
mov esi, dword [ebp - 0x10]
sbb eax, edi
shrd ecx, eax, 1
shr eax, 1
push eax
mov eax, dword [0x7ce700]
imul dword [0x7c5aec]
push ecx
xor ecx, ecx
add eax, dword [0x7ce7f8]
push ecx
adc edx, ecx
add eax, 0x100000
push esi
adc edx, ecx
push edx
push eax
call fcn.00497cb4
push edx
push eax
call fcn.00497cb4
mov edi, eax
mov dword [ebp - 0x14], edx
push edi
push ebx
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
cmp byte [0x7ce6f8], 0
je 0x50ad1c
mov ecx, dword [0x7ce6ec]
sub ecx, dword [0x7ce7f4]
mov eax, dword [0x7ce7fc]
test eax, eax
je 0x50acef
cmp edi, esi
jne 0x50acf3
cmp dword [ebp - 0x14], 0
jne 0x50acf3
test ecx, ecx
jns 0x50ad23
test eax, eax
je 0x50acfd
dec eax
mov dword [0x7ce7fc], eax
mov eax, dword [0x7ce7f8]
add eax, ecx
mov ecx, 0x1000000
cmp eax, ecx
jle 0x50ad0f
mov eax, ecx
test eax, eax
jns 0x50ad15
xor eax, eax
mov dword [0x7ce7f8], eax
jmp 0x50ad23
and dword [0x7ce7f8], 0
mov edi, dword [sym.imp.KERNEL32.DLL_InterlockedExchangeAdd]
mov eax, 0x7d03c8
mov byte [ebp - 0x14], 1
push eax
mov dword [ebp - 0x18], eax
call fcn.00467ec4
push 0
push ebx
mov dword [ebp - 4], 1
call edi
push 0
push 0x7ce7e4
mov esi, eax
call edi
cmp eax, esi
jle 0x50ad6e
push 0
push ebx
call edi
push 0
push 0x7ce7e4
mov esi, eax
call edi
sub eax, esi
push eax
call fcn.00543988
call fcn.00543ad6
pop ebx
test eax, eax
je 0x50adaf
call fcn.00543ad6
lea esi, [eax + 0x14]
call fcn.004604ce
sub eax, dword [esi]
cmp byte [0x7ce6f7], 0
mov dword [0x7ce7f4], eax
je 0x50adb6
imul ecx, dword [0x7ce6e4], 0xea60
cmp eax, ecx
jb 0x50adb6
mov eax, ecx
cdq
push edx
push eax
call fcn.005439e7
jmp 0x50adb6
and dword [0x7ce7f4], 0
push 0x7d03c8
mov dword [ebp - 4], 2
call fcn.00468001
mov eax, dword [0x7ce718]
inc eax
pop edi
pop esi
cmp eax, 0x14
jb 0x50add7
push 0x14
pop eax
mov ecx, dword [ebp - 0xc]
mov dword [0x7ce718], eax
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4