Function at 0x50185a
Capabilities:
Get memory capacity

Disassembly:
mov eax, 0x6b32ec
call fcn.00664608
mov eax, dword [0x7ba8dc]
sub esp, 0x2c
shr eax, 2
push esi
push edi
test al, 1
je 0x501895
call fcn.0049b651
mov edi, dword [eax + 4]
mov esi, dword [edi]
cmp esi, edi
je 0x501895
mov ecx, dword [esi + 8]
push 1
mov eax, dword [ecx]
call dword [eax + 0x14]
mov eax, dword [esi]
mov esi, eax
cmp eax, edi
jne 0x501883
mov eax, dword fs:[0x2c]
mov ecx, dword [0x7ec658]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x7c2f38]
cmp eax, dword [ecx + 4]
jg 0x501bd5
mov ecx, dword [0x7c2f30]
mov eax, dword [0x7c2f34]
add ecx, 2
mov edx, dword [0x7b6dc4]
adc eax, 0
cmp eax, edx
jg 0x501916
mov eax, dword [0x7b6dc0]
jl 0x5018db
cmp ecx, eax
jae 0x501916
mov edi, 0x7c2edc
mov dword [0x7c2f30], eax
push edi
mov dword [0x7c2f34], edx
call fcn.0045d7af
mov esi, 0x7c2b40
mov ecx, esi
call fcn.00502255
add esi, 0x28
cmp esi, 0x7c2ed8
jl 0x5018f6
and dword [ebp - 4], 0
push edi
call fcn.0045d8ec
or dword [ebp - 4], 0xffffffff
push 5
mov edx, 0x7c2a60
pop esi
mov eax, dword [edx]
mov ecx, dword [edx - 4]
mov dword [edx], ecx
sub ecx, eax
mov eax, dword [edx - 8]
and dword [edx - 8], 0
add dword [edx + 8], eax
mov dword [edx + 4], ecx
adc dword [edx + 0xc], 0
lea edx, [edx + 0x20]
mov dword [edx - 0x10], eax
sub esi, 1
jne 0x50191e
cmp byte [0x7c2a02], 0
je 0x501957
mov esi, dword [0x7c2a1c]
shl esi, 0x14
jmp 0x50195d
mov esi, dword [0x7c2a38]
movzx eax, byte [0x7c2a08]
neg eax
push ebx
sbb eax, eax
mov ebx, 0x7c2b30
and eax, esi
xchg dword [ebx], eax
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.DLL_GlobalMemoryStatus]
push 0
push esi
push 0
push dword [ebp - 0x30]
call fcn.0048e8d6
push 0
push eax
mov eax, dword [ebp - 0x20]
add eax, 0xf3800000
push 0
push eax
call fcn.0048e8d6
mov edi, eax
xor eax, eax
lock xadd dword [ebx], eax
xor ecx, ecx
mov edx, 0x7c2b2c
lock xadd dword [edx], ecx
cdq
push edx
push eax
mov eax, ecx
cdq
push edx
push eax
call fcn.0048e8d6
xor ecx, ecx
sub edi, eax
mov eax, 0x100000
sbb ecx, edx
jne 0x5019d5
cmp edi, eax
ja 0x5019d5
and dword [ebp - 0x14], 0
mov edi, eax
jmp 0x5019d8
mov dword [ebp - 0x14], ecx
cmp byte [0x7c2a15], 0
mov esi, 0x7c2b28
je 0x501b10
cmp byte [0x7c2a16], 0
je 0x501a13
xor eax, eax
lock xadd dword [esi], eax
neg eax
sbb eax, eax
and eax, 0xffff63c0
add eax, 0x13880
cmp dword [0x7b9ee8], eax
jb 0x501b10
cmp byte [0x7c2a03], 0
jne 0x501a2a
and dword [0x7c2b38], 0
xchg dword [esi], edi
jmp 0x501b1b
call fcn.005380a6
mov ebx, eax
xor ecx, ecx
add ebx, ebx
mov eax, 0x7c2b2c
lock xadd dword [eax], ecx
xor eax, eax
mov edx, 0x7c2b30
lock xadd dword [edx], eax
cdq
mov dword [ebp - 0x10], eax
mov eax, ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x14], edx
cdq
sub ecx, eax
mov eax, dword [ebp - 0x14]
push 0
sbb eax, edx
add ecx, ebx
pop edx
adc eax, edx
cmp edx, eax
ja 0x501a72
jb 0x501a6e
cmp ebx, ecx
ja 0x501a72
mov ebx, ecx
mov edx, eax
mov ecx, dword [ebp - 0x20]
xor eax, eax
sub ecx, ebx
sbb eax, edx
shrd ecx, eax, 1
shr eax, 1
push eax
mov eax, dword [0x7c2a20]
imul dword [0x7b9ee8]
push ecx
xor ecx, ecx
add eax, dword [0x7c2b38]
push ecx
adc edx, ecx
add eax, 0x100000
push edi
adc edx, ecx
push edx
push eax
call fcn.0048e8d6
push edx
push eax
call fcn.0048e8d6
mov ebx, eax
mov ecx, ebx
xchg dword [esi], ecx
cmp byte [0x7c2a18], 0
je 0x501b07
mov ecx, dword [0x7c2a0c]
sub ecx, dword [0x7c2b34]
mov eax, dword [0x7c2b3c]
test eax, eax
je 0x501adb
cmp ebx, edi
jne 0x501adf
test edx, edx
jne 0x501adf
test ecx, ecx
jns 0x501b1b
test eax, eax
je 0x501ae9
dec eax
mov dword [0x7c2b3c], eax
add ecx, dword [0x7c2b38]
mov eax, 0x1000000
cmp ecx, eax
jg 0x501b00
mov eax, ecx
test ecx, ecx
jns 0x501b00
xor eax, eax
mov dword [0x7c2b38], eax
jmp 0x501b1b
and dword [0x7c2b38], 0
jmp 0x501b1b
and dword [0x7c2b38], 0
xor eax, eax
xchg dword [esi], eax
mov edi, 0x7c4730
mov byte [ebp - 0x14], 1
push edi
mov dword [ebp - 0x18], edi
call fcn.0045d7af
mov dword [ebp - 4], 1
xor ecx, ecx
mov edx, 0x7c2b24
lock xadd dword [edx], ecx
xor eax, eax
lock xadd dword [esi], eax
pop ebx
cmp ecx, eax
jle 0x501b5e
xor ecx, ecx
lock xadd dword [edx], ecx
xor eax, eax
lock xadd dword [esi], eax
sub ecx, eax
push ecx
call fcn.00537e72
call fcn.00537fb1
test eax, eax
je 0x501b9e
call fcn.00537fb1
lea esi, [eax + 0x14]
call fcn.00455bff
sub eax, dword [esi]
cmp byte [0x7c2a17], 0
mov dword [0x7c2b34], eax
je 0x501ba5
imul ecx, dword [0x7c2a04], 0xea60
cmp eax, ecx
jb 0x501ba5
mov eax, ecx
cdq
push edx
push eax
call fcn.00537ec9
jmp 0x501ba5
and dword [0x7c2b34], 0
push edi
mov dword [ebp - 4], 2
call fcn.0045d8ec
mov eax, dword [0x7c2a3c]
inc eax
pop edi
pop esi
cmp eax, 0x14
jb 0x501bc2
push 0x14
pop eax
mov ecx, dword [ebp - 0xc]
mov dword [0x7c2a3c], eax
mov dword fs:[0], ecx
leave
ret 4
mov esi, 0x7c2f38
push esi
call fcn.00664835
cmp dword [0x7c2f38], 0xffffffff
pop ecx
jne 0x5018b5
mov eax, dword [0x7b6dc0]
mov ecx, dword [0x7b6dc4]
push esi
mov dword [0x7c2f30], eax
mov dword [0x7c2f34], ecx
call fcn.006647eb
pop ecx
jmp 0x5018b5